improve arrayutil