intro abstract callback class