put RouteResult into its own class + more comments