misc functions.