Front-end behaviour mostly working, added shake to undo