fix RBT bug. clean code