Feature/modularise

Redo the project after a brilliant idea to make it modular.