Better plugin API