easier plugin development with only a dependency on an interface