promote impossible functions