update router class and abstract
abstract response class