Initial commit of refactoring to move logic inside of service
Not 100% happy with where code is as a lot of mapping to and from things
Also using ViewModel in both Api & Service rather than a simple data transfer object or just the parameters