extract common canvas operations to WorkSpace