work in progress
Added watch task
Merge branch 'wip'
initial impl of dispose() method
Let there be buttons
hk.remove() for removing objects from array
rewrote action; tidier.
Button invokes action and syncs with action state