calbacks & abstract_controller