Major Refactor - Split project into client and server