diff --git a/Home.md b/Home.md
index 6753ecc..cdbe125 100644
--- a/Home.md
+++ b/Home.md
@@ -2,6 +2,7 @@ Welcome to the OrcaSlicer WIKI!
We have divided it roughly into the following pages:
-* [Calibration](wiki/Calibration)
-* [Print settings](wiki/Print-settings)
-* [How to build Orca Slicer](wiki/How-to-build)
+- [Calibration](./Calibration)
+- [Print settings](./Print-settings)
+- [How to build Orca Slicer](./How-to-build)
+- [Developer Reference](./developer-reference/Home)
diff --git a/How to build b/How-to-build.md
similarity index 100%
rename from How to build
rename to How-to-build.md
diff --git a/developer-reference/Home.md b/developer-reference/Home.md
new file mode 100644
index 0000000..bdbb65e
--- /dev/null
+++ b/developer-reference/Home.md
@@ -0,0 +1,6 @@
+# For Developers
+
+This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless.
+
+- [Preset, PresetBundle and PresetCollection](./Preset-and-bundle)
+- [Plater, Sidebar, Tab, ComboBox](./plater-sidebar-tab-combobox)
diff --git a/developer-reference/Preset-and-bundle.md b/developer-reference/Preset-and-bundle.md
new file mode 100644
index 0000000..4e0b00d
--- /dev/null
+++ b/developer-reference/Preset-and-bundle.md
@@ -0,0 +1,43 @@
+This page deals with the explanation for 3 classes in the code.
+
+## [`Preset`](../../src/libslic3r/Preset.hpp)
+
+As the name might suggest this class deals with presets for various things. It defines an enum `Type` which basically tells you what kind of data the present contains. Below are a few explained and there corresponding UI elements
+
+#### Note: There is a lot of outdated and legacy code in the code base.
+
+- `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code.
+
+
+
+- `TYPE_FILAMENT`: As the name suggests this preset is for filaments
+
+
+
+- `TYPE_PRINTER`: Preset for printers.
+
+
+
+There are other preset types but some of them are for SLA. Which is legacy code, since SLA printers are no longer supported. Above 3 are the important types.
+
+## [`PresetBundle`](../../src/libslic3r/PresetBundle.hpp)
+
+This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT).
+
+`PresetCollection prints`\
+`PresetCollection filaments`\
+`PrinterPresetCollection printers`
+
+each one of these contains a collection of processes, filaments and printers respectively.\
+
+#### Note: Printers, filaments and processes in the bundle don't all have to be compatible with each other. In fact all the saved presets are stored in one `PresetBundle`. The `PresetBundle` is loaded on start up. The list of filaments and processes shown for a particular printer is a subset of `filaments` and `prints` `PresetCollection`s.
+
+## [`PresetCollection`](../../src/libslic3r/Preset.hpp)
+
+`PrinterPresetCollection` is a class derived from `PresetCollection`.
+
+These contain a collection of presets. The presets could be of any type.\
+functions of note here are:
+
+`get_edited_preset()`: returns the current selected preset along with any modifications the user has made.\
+`get_selected_preset()`: returns the current selected preset without the modifications the user has made.
diff --git a/developer-reference/plater-sidebar-tab-combobox.md b/developer-reference/plater-sidebar-tab-combobox.md
new file mode 100644
index 0000000..a35ca6f
--- /dev/null
+++ b/developer-reference/plater-sidebar-tab-combobox.md
@@ -0,0 +1,23 @@
+### !! incomplete, possibly inaccurate, being updated with new info !!
+
+## [`Plater`](../../src/slic3r/GUI/Plater.hpp)
+
+Refers to the entire application. The whole view, file loading, project saving and loading is all managed by this class. This class contains members for the model viewer, the sidebar, gcode viewer and everything else.
+
+## [`Sidebar`](../../src/slic3r/GUI/Plater.hpp)
+
+This is relating the the sidebar in the application window
+
+
+
+## [`ComboBox`](../../src/slic3r/GUI/Widgets/ComboBox.hpp)
+
+The drop down menus where you can see and select presets
+
+
+
+## [`Tab`](../../src/slic3r/GUI/Tab.hpp)
+
+Refers to the various windows with settings. e.g. the Popup to edit printer or filament preset. Also the section to edit process preset and the object list. These 4 are managed by `TabPrinter`, `TabFilament`, `TabPrint` and `TabPrintModel` respectively.
+
+
diff --git a/images/combobox.png b/images/combobox.png
new file mode 100644
index 0000000..0b720e6
Binary files /dev/null and b/images/combobox.png differ
diff --git a/images/filament-preset.png b/images/filament-preset.png
new file mode 100644
index 0000000..7ad4c1c
Binary files /dev/null and b/images/filament-preset.png differ
diff --git a/images/full-sidebar.png b/images/full-sidebar.png
new file mode 100644
index 0000000..316fd2e
Binary files /dev/null and b/images/full-sidebar.png differ
diff --git a/images/printer-preset.png b/images/printer-preset.png
new file mode 100644
index 0000000..d4d7371
Binary files /dev/null and b/images/printer-preset.png differ
diff --git a/images/process-preset.png b/images/process-preset.png
new file mode 100644
index 0000000..2a2fc53
Binary files /dev/null and b/images/process-preset.png differ
diff --git a/images/tab-popup.png b/images/tab-popup.png
new file mode 100644
index 0000000..e31f47d
Binary files /dev/null and b/images/tab-popup.png differ
diff --git a/pellet-flow-coefficient.md b/pellet-flow-coefficient.md
new file mode 100644
index 0000000..8e91312
--- /dev/null
+++ b/pellet-flow-coefficient.md
@@ -0,0 +1,23 @@
+Large format printers with print volumes in the order of 1m^3 generally use pellets for printing.
+The overall tech is very similar to FDM printing.
+It is FDM printing, but instead of filaments, it uses pellets.
+
+The difference here is that where filaments have a filament_diameter that is used to calculate
+the volume of filament ingested, pellets have a particular flow_coefficient that is empirically
+devised for that particular pellet.
+
+pellet_flow_coefficient is basically a measure of the packing density of a particular pellet.
+Shape, material and density of an individual pellet will determine the packing density and
+the only thing that matters for 3d printing is how much of that pellet material is extruded by
+one turn of whatever feeding mehcanism/gear your printer uses. You can emperically derive that
+for your own pellets for a particular printer model.
+
+We are translating the pellet_flow_coefficient into filament_diameter so that everything works just like it
+does already with very minor adjustments.
+
+filament_diameter = sqrt( (4 \* pellet_flow_coefficient) / PI )
+
+sqrt just makes the relationship between flow_coefficient and volume linear.
+
+higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
+All other calculations remain the same for slicing.