binary tree implementation complete