Undo implemented + new class to help with undo