creating core plugin class, better testing (wip)