make pattern match exhaustive