Refactor and add some comments to ReflectBasedRouter