you can now pass various payloads and generate one payload - useful for chaining

had to restructure code for this