Plugin base and discovery