implement AAAB