use components.register for late binding and dynamic specs
changed stuff