added AIBase implementation