Custom array object abstract implementstion