added IPCA implementation