make smaller trees out of bigger ones, doing smart stuff along the way