implement read all