move .toContext() to be a class method, fix property definitions with s/writeable/writable
improve validation error returns