added splat pattern matching