param value should not modified in function