manually create array instead of use compact()