make Tree a Functor
shadow update
fix for issue #68