Revert "Structure for language support"

This reverts commit f528015f9fb83dbe8b2420db50b8344ee9040a9f.
Revert "Revert "Structure for language support""

This reverts commit c603d36918fc9a054443b8045d0d876046494f40.