reader `read` method