add SmartTree class