[enh] Add a plugin system #74