It's not nice to have the circular dependency between those. FileUtils should not be aware of LanguageManager. Perhaps we should have a dictionary of known extensions (created and maintained by LanguageManager) which would be used by FileUtils. That would help to decouple these two. I don't know if it is worth fixing. What do you think?