refactored plugin to enable clients invoke exposed methods