added plugin interface
updated all reference and usages