implement pfw to icm