Remodeled plugin based on Boilerplate. May switch to different pattern as scope of "this" is really annoying