The style here is a bit different from the one in compile.js in which we defined self = {} and amend things to it. Which way is to prefer? I think having a common way is better than implementing each plugin in its own fashion.