Enh: add basic plugin system support