finish up routing and remaining functionality