function usage patterns