refactored rectangle