Cheap canvas abstraction