implemented subarrays