Continuing refactoring

* Merge from dev
* Misc. fixes to ProfileClient
* Added unit tests for ProfileClient
* Added mocks
Move this logic inside `ProfileClient`