initial implementation of reader