improvements in abstract_controller & callbacks