change plugin architecture