function params should be immutable