Refactor package structure
Add Command-pattern