rewritten the plugin
demo and folder structure