and if we make it not cause side-effects we would need to return an object `{currentColor, usedColors}` or we would need to split the logic into 2 methods or create the new array manually (`var color = subject._getNextColor(usedColors); usedColors.push(color)`) - so this is really the simplest solution for the problem.. easier to consume and works for our use cases.