Initial commit for plugin architecture