abstracted services into separate modules that register with jarvis