cleanup: split applying initializers out of doCreate

one method should only do one thing.

also this allows to apply the initializers to non-services as well
<code>protected</code>