getting there -- they all work except the final recursive Tree call