move Reader to its own files