Huge Navigation class refactor, added new child functions + tests