just some comment changes
better error message
huge overhaul of how plugins are 'hooked' and validated