simplify plugin architecture