new architecture for callback mechanism