Reorg package to make this project can include many design pattern
practice.