More generic reader.