fixed non-exhaustive warnings
part3 complete
part3 complete