response factory method