Not sure if it is needed in this project, but can be refactored to follow Clean Architecture.
For instance:
- clean up domain package, remove utils from it, logger, etc
- make domain layer pure kotlin, leave only interfaces(i.e. UserPreferencesRepository) and data classes