redesign + reimplement navigation