fix non-exhaustive-pattern