early experiments in canvas with better performance and modeling