Refactored and added lots of custom options & methods
Merge branch 'options' into develop