At this point, there are several un-happy paths that are either not covered by test or handled correctly. This is a serious risk that could lead to an unexpected state.