work in progress, routing nearly complete