restructured commandcontroller and implemented undo/redo