more code for reading CPs