refactoring, add aim