(refs #32)Separate Plugin interface and implementation