Refactoring to expose private methods.
Merge branch 'develop'