hw2 addComponentCmd redo undo done