Streamlined Services and made them more flexible

Delayed creations with run-time checks that all services have been
created before resolving