Done some work on the structure and added a client