add reply framework