implem reader