Move canvas stuff into own file, add a lot of native js