created plugin infrastructure #326