Implementation of read