Did some refactoring for ABM-251 by creating DMU and refactoring
funciton
Merge branch 'feature-251' into develop