ibp implementation