abstract read