merge TableReader and Reader, rename AbstractReader to Reader