some code got moved to geometric_shapes