unique_ptr with shared_ptr watchers setup changed for input component. Start of state machine code.