adding in "collect" parameter so call stack should not overflow