Refactor
Added basic plugin architecture