patterns and conds