refactor context: move the non-delegated properties up
context: .error() -> .throw()

.error() still works for compatibility, but it will be removed in the
future. closes #94