modified read interface