don't modify default function arguments in-place