use calling conventions in dispatch