refactored - as components are registered they are started