cache observer and language observer