framework of plugin