Add plugin framework
Make engine
Refactoring