use cairo for drawing