Tree interface

This fixes issues #1 and #2.