Massive Refactoring

1) Reorganized to put the append_node up to.
2) Refactored to have it return a reference