Begin re-structuring of plugin to better fit standards, add callbacks