Envicoat: protecting surfaces from hostile environments