changed drawing to cairo, added vector2d