extra parameter for specifying primitive mode