base tree - i think i can get away without rewriting