Slightly more general definitions.