refractored languge support things