Refactoring code to use already in place methods.

Just looking through your repo and saw some code repetition.

- changed `offsetGet` to use `raw()` and moved `isFactory` to be its own method.
- `raw` uses `offsetExists()`

Everywhere where the code used to throw the same Exception thrown in `raw` now uses `raw`.