Plugin communication refactoring