basic command processing