add reader function