complex arguments must be defined as inputs