#313 Done but not ready to be tested

Must wait for code commentation and test explanation