refactor with arrayize