adding a working version of start_read