General purpose utilities.