Unified plugin behaviour