re-architect SASL step/continue flow