Basic Refractoring Creating a new Base Plugin

Due to need for backwards compataibity base plugin could be inherited
from or simply copied and used for plugin development