Emacs can be extended with many different packages. The concept is called packages and with the following command you can se which packages are available and which are installed.
M-x package-list-packages
This will bring up a list like the following.

And they are customizable
The installed packages are stored under your .emacs.d folder and likely in the elpa folder here. Packages consists of a .el
source file and a .elc
compiled package. I recently saw some errors in the *Messages* buffer in the treemacs package. I found the bug on github and applied the correction to the el file. However the code that is loaded into Emacs is the byte-compiled version that is stored in the .elc file.
To compile the newly modified file you find the file in dired, highlight the file and press B

Now you are asked if you want to compile the file :
