split stuff up into subservices and modules