Reworked the array public API