checkpoint
factor command dispatch