'init' and 'update' now take an 'options' argument
Refactor of 'options' validation
A variety of custom options can now be passed to 'init' and 'update'