Add print_tree, simplify insertion logic
Refactor node creation