tree interface basically works