New version with plugin support