fleshing out state transitions