Long time work in 1 commit. Client is functional now