completing basic reader
refactoring slightly