routing polished, still unfinished