hard
binary tree class