main plugin file