Added basic plugin system. Altered Original system to be more flexible and handle subclasses