Framework router