major refactoring, mostly functional, service needs new messaging protocol though