add parent?, branch_root and external? method