implemented the CIReader part