fixed exhausting nonexhaustive types