accept multiple payload types