refactoring AFT1, AFT2