refactoring folder and namespace layout to reflect boundaries better
merging with latest code in repository