start fresh
recursive tree based approach