[AM] design, refactoring