Major Refactoring:
Rewrote many methods
rewrote helpers
changed how node is called