impl refraction