refactoring and testing
impove UI

Undo, rectangular frame, empty source on start