callback implementation based on interface, class extention and super/this keywords