Continuing refactoring

* Merge from dev
* Misc. fixes to ProfileClient
* Added unit tests for ProfileClient
* Added mocks
This will always create `ProfileClient` even if we wanted to create mocked one. Feel free to change it to property that checks if it's null or not and in case of null will create one.