Replaced EOF/ReadShape method with a Next/Shape approach