Access origin

This will also refactor the plugin related tasks to its own class.
Also, it fixes a bug when parsing the minor version header.
`getPluginInfo` will return all the plugin info if it cannot find the key 'options'. This is why we need this.