Add new plugin architecture