complex passing