Plugin Refactoring. !st version