all commands (with some exceptions like save) have execute and undo methods