add settings navigation and code refactoring

closes #159