Shabby pure-canvas rewrite (will fix)
Add drag-and-drop to the rewrite