Project restructure
This branch has been around for a year and it just needs to be merged. Main change: re-structured the project into sub-modules.
This branch has been around for a year and it just needs to be merged. Main change: re-structured the project into sub-modules.