Added Generic Tree implementation