Blending BDI agents with object-oriented and functional programming with JaKtA