command processing