Finished refactoring and resizability

Also added new fields to client object