Software layer for each language

Summary
Develop the software layer for each language