all basic shapes are there - TODO: tests