refactoring Shapes