reworking canvas, currently broken