work in progress: canvas device (but it crashes due to some kind of pointer issue)