subscribe: state machine ~~~