150-basecomponent-deregister

- added base component
- refactored components so they implement base component
- created deregister method on base object
- re-factored modules to confirm coding standards