// type limitations for third param