add success, error and terminate callbacks
pushed version