added skeleton and helper functions for undoredo