finish draft of Two cases(need refactoring)