actually doing callbacks properly