refactoring architecture (not completed).
refactoring. but, crashed.