introduced AbstractArray abstract class