add reader functions