added primitive function argument preservation