Modularized.
Merge branch 'refactor/modularization' into develop