Huge refactoring, new service.
Merge.