don't pass  as array as it makes it harder to identify what can be altered upstream