add TreeDataSource class