provide api as a set of interfaces for core plug-in