Don't return Option[Tree]; return Tree, with EmptyTree being None.