add support for plugins running once, before and after