Normalize reply() interface. Closes #2141. Closes #2104