New design

major pull-request to switch to new design where the services are the only interface to the user.