added a target language
some more noodling with non-empty contexts