be a bit stricter with pattern matching