Remember to merge this branch once it works

Development branch contains huge refactoring and changes, this will go to master once its stable enough