added dx and dy for laying out text with relative offsets