user
Instruction: Design a program for drawing basic shapes.

assistant
The program should be able to draw basic shapes, such as lines, circles, rectangles and polygons. It should provide an interface for specifying the properties of the shape, such as the length, width, radius and number of sides. It should also provide an interface for manipulating the shapes, such as moving, scaling and rotating them.