Refactored to core to use state/state machine approach