added tree-based draw