lot of changes to getting this to a publishable state. still more to do, heavily on canvas view