use checkmate for argument checks