ported major methods from BST to RB Tree