adds interface and abstract classes of readers; and reader unit-test