rebuild with new interface IBrainAI