updated reading wrapper