extract AbstractRectangleProject