Mix language setting

Closes #2656 and #2657.
I just realized we do need two bodies... but we can probably share some code between them?