refactored block corner then side strategy method