Re-Writing the read function