implement Red Black Tree