square class tree :D