refactoring the CodeReaders