Major improvement, added services, needs refactoring