Added response factory and contract.
Use macro-able trait.