Broke up the main file into multiple so that the functionality of the plugin is more straight forward.