replace all duplications to invoke callbacks with single method call