friendly id; state machine