Implementing a plug-in using the separate interface pattern