rip out canvas and fix some bugs