BDI implementation