refactor of aop destructor