More work on service and usecase layers
Fixed tests
Minor refactor
Merge branch 'develop'