basically cli and command processing