defining language types a bit further