some more specs and structure to the client