modified: unified header for easy integration
modified: namespace and class naming