abstract_implementation update