refactoring design pattern
See more