supporting marshalling of return values