make Tree primary interface so caller doesn't deal with index