refactoring in absorb module