use unshift to avoid reversing array