refactored shape making