adding loop begin/end to undo types, cleaning up events class/inferface structure