Addon Redesign

Created and implemented a framework for the add-on to use and to rely
on event-driven object-oriented design.