a little about pattern matching