patterns and functions