implemented "readf" and "reads"