Merge pull request #48 from danh-arm/dh/major-refactoring

dh/major refactoring