introduced plugins, major refactor