Refactor all the things (change way server works, include tests, setting up for user passing protocol to server)