basic tools working with single canvas but has serious double-update issues