got rid of return val on self.read()