Revert "Revert "Refactored into services - resulting in errors""

This reverts commit c3ef7fcd67c3f10f6540c00f87017148d8a1e128.
Refactoring complete - error resolved.