Allow 'functionally pure' option
update xray
make operations more safe and fix tests for functional use case
Merge pull request #8 from ryanjdew/unstable

Functional option and safer operations