rewrite the plugin; proper movement implemented