huge refactoring (navigation, dom)