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.
I think $options will be an empty array by default, as we already have the process functions that add default values.