Refactor class names and improved documentation.