improve external plugin support