Major refactor in project structure to have a clear separation between client and server