Index: uspace/app/bithenge/transform.c
===================================================================
--- uspace/app/bithenge/transform.c	(revision 43788b27b09a2c46c1076f96736c5d958a7268e3)
+++ uspace/app/bithenge/transform.c	(revision 6e34bd064f1f4400be75c04c79e90a5d097c2927)
@@ -61,7 +61,6 @@
 }
 
-static int ascii_apply(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_node_t *in,
-    bithenge_node_t **out)
+static int ascii_apply(bithenge_transform_t *self, bithenge_scope_t *scope,
+    bithenge_node_t *in, bithenge_node_t **out)
 {
 	int rc;
@@ -103,7 +102,6 @@
 };
 
-static int prefix_length_1(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+static int prefix_length_1(bithenge_transform_t *self, bithenge_scope_t *scope,
+    bithenge_blob_t *blob, aoff64_t *out)
 {
 	*out = 1;
@@ -111,7 +109,6 @@
 }
 
-static int prefix_length_2(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+static int prefix_length_2(bithenge_transform_t *self, bithenge_scope_t *scope,
+    bithenge_blob_t *blob, aoff64_t *out)
 {
 	*out = 2;
@@ -119,7 +116,6 @@
 }
 
-static int prefix_length_4(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+static int prefix_length_4(bithenge_transform_t *self, bithenge_scope_t *scope,
+    bithenge_blob_t *blob, aoff64_t *out)
 {
 	*out = 4;
@@ -127,7 +123,6 @@
 }
 
-static int prefix_length_8(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+static int prefix_length_8(bithenge_transform_t *self, bithenge_scope_t *scope,
+    bithenge_blob_t *blob, aoff64_t *out)
 {
 	*out = 8;
@@ -137,5 +132,5 @@
 #define MAKE_UINT_TRANSFORM(NAME, TYPE, ENDIAN, PREFIX_LENGTH_FUNC)            \
 	static int NAME##_apply(bithenge_transform_t *self,                    \
-	    bithenge_transform_context_t *context, bithenge_node_t *in,        \
+	    bithenge_scope_t *scope, bithenge_node_t *in,                      \
 	    bithenge_node_t **out)                                             \
 	{                                                                      \
@@ -176,6 +171,5 @@
 
 static int zero_terminated_apply(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_node_t *in,
-    bithenge_node_t **out)
+    bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out)
 {
 	int rc;
@@ -201,6 +195,5 @@
 
 static int zero_terminated_prefix_length(bithenge_transform_t *self,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+    bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out)
 {
 	int rc;
@@ -251,5 +244,5 @@
 	bithenge_node_t base;
 	struct struct_transform *transform;
-	bithenge_transform_context_t *context;
+	bithenge_scope_t *scope;
 	bithenge_blob_t *blob;
 } struct_node_t;
@@ -281,5 +274,5 @@
 
 static int struct_node_for_one(const char *name,
-    bithenge_transform_t *subxform, bithenge_transform_context_t *context,
+    bithenge_transform_t *subxform, bithenge_scope_t *scope,
     bithenge_blob_t **blob, bithenge_for_each_func_t func, void *data)
 {
@@ -288,5 +281,5 @@
 
 	aoff64_t sub_size;
-	rc = bithenge_transform_prefix_length(subxform, context, *blob,
+	rc = bithenge_transform_prefix_length(subxform, scope, *blob,
 	    &sub_size);
 	if (rc != EOK)
@@ -299,5 +292,5 @@
 		goto error;
 
-	rc = bithenge_transform_apply(subxform, context, subblob_node,
+	rc = bithenge_transform_apply(subxform, scope, subblob_node,
 	    &subxform_result);
 	bithenge_node_dec_ref(subblob_node);
@@ -357,5 +350,5 @@
 	for (size_t i = 0; subxforms[i].transform; i++) {
 		rc = struct_node_for_one(subxforms[i].name,
-		    subxforms[i].transform, struct_node->context, &blob, func,
+		    subxforms[i].transform, struct_node->scope, &blob, func,
 		    data);
 		if (rc != EOK)
@@ -391,6 +384,5 @@
 
 static int struct_transform_apply(bithenge_transform_t *base,
-    bithenge_transform_context_t *context, bithenge_node_t *in,
-    bithenge_node_t **out)
+    bithenge_scope_t *scope, bithenge_node_t *in, bithenge_node_t **out)
 {
 	struct_transform_t *self = transform_as_struct(base);
@@ -409,5 +401,5 @@
 	node->transform = self;
 	bithenge_node_inc_ref(in);
-	node->context = context;
+	node->scope = scope;
 	node->blob = bithenge_node_as_blob(in);
 	*out = struct_as_node(node);
@@ -416,6 +408,5 @@
 
 static int struct_transform_prefix_length(bithenge_transform_t *base,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+    bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out)
 {
 	struct_transform_t *self = transform_as_struct(base);
@@ -433,5 +424,5 @@
 		    self->subtransforms[i].transform;
 		aoff64_t sub_size;
-		rc = bithenge_transform_prefix_length(subxform, context, blob,
+		rc = bithenge_transform_prefix_length(subxform, scope, blob,
 		    &sub_size);
 		if (rc != EOK)
@@ -517,7 +508,6 @@
 }
 
-static int compose_apply(bithenge_transform_t *base,
-    bithenge_transform_context_t *context, bithenge_node_t *in,
-    bithenge_node_t **out)
+static int compose_apply(bithenge_transform_t *base, bithenge_scope_t *scope,
+    bithenge_node_t *in, bithenge_node_t **out)
 {
 	int rc;
@@ -528,5 +518,5 @@
 	for (size_t i = self->num; i--; ) {
 		bithenge_node_t *tmp;
-		rc = bithenge_transform_apply(self->xforms[i], context, in,
+		rc = bithenge_transform_apply(self->xforms[i], scope, in,
 		    &tmp);
 		bithenge_node_dec_ref(in);
@@ -541,10 +531,9 @@
 
 static int compose_prefix_length(bithenge_transform_t *base,
-    bithenge_transform_context_t *context, bithenge_blob_t *blob,
-    aoff64_t *out)
+    bithenge_scope_t *scope, bithenge_blob_t *blob, aoff64_t *out)
 {
 	compose_transform_t *self = transform_as_compose(base);
 	return bithenge_transform_prefix_length(self->xforms[self->num - 1],
-	    context, blob, out);
+	    scope, blob, out);
 }
 
