Tree class to enable complex fexible method overloading