canvas now dynamically resizes based on grid and cell sizes, misc. cleanup