Refactored PMD to allow modular extension of languages.