diff --git a/bu4/combinatory/lic.py b/bu4/combinatory/lic.py
index e53b36a..ec8a4b3 100644
--- a/bu4/combinatory/lic.py
+++ b/bu4/combinatory/lic.py
@@ -6,7 +6,7 @@ from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.evaluation.constructs.evalue import EValue
 from bu4.indexing.constructs.indexed import Indexed
 from bu4.indexing.evaluation.eivtype import eivtype
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
 from bu4.parsing.extensions.CodeExtension import CodeExtension
 from bu4.transform.states.transformfinished import TransformFinished
diff --git a/bu4/combinatory/lkc.py b/bu4/combinatory/lkc.py
index 8015ad0..9c9bd8d 100644
--- a/bu4/combinatory/lkc.py
+++ b/bu4/combinatory/lkc.py
@@ -7,7 +7,7 @@ from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.evaluation.constructs.evalue import EValue
 from bu4.indexing.constructs.indexed import Indexed
 from bu4.indexing.evaluation.eivtype import eivtype
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
 from bu4.parsing.extensions.CodeExtension import CodeExtension
 from bu4.transform.states.transformfinished import TransformFinished
diff --git a/bu4/combinatory/lsc.py b/bu4/combinatory/lsc.py
index 610d248..6c600c4 100644
--- a/bu4/combinatory/lsc.py
+++ b/bu4/combinatory/lsc.py
@@ -9,7 +9,7 @@ from bu4.evaluation.targets.avanonymouscontainer import AVAnonymousContainer
 from bu4.evaluation.targets.avcall import AVCall
 from bu4.indexing.constructs.indexed import Indexed
 from bu4.indexing.evaluation.eivtype import eivtype
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
 from bu4.parsing.extensions.CodeExtension import CodeExtension
 from bu4.transform.states.transformfinished import TransformFinished
diff --git a/bu4/linking/constructs/lcall.py b/bu4/linking/constructs/lcall.py
index 7b18a37..6811cc2 100644
--- a/bu4/linking/constructs/lcall.py
+++ b/bu4/linking/constructs/lcall.py
@@ -6,8 +6,8 @@ from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.evaluation.targets.avcall import AVCall
 from bu4.indexing.constructs.icall import ICall
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.aftertransform import AfterTransform
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstart import TransformStart
diff --git a/bu4/linking/constructs/ldelayed.py b/bu4/linking/constructs/ldelayed.py
index 7d777e7..4d52bd9 100644
--- a/bu4/linking/constructs/ldelayed.py
+++ b/bu4/linking/constructs/ldelayed.py
@@ -5,8 +5,8 @@ from bu4.evaluation.constructs.edelayed import EDelayed
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.idelayed import IDelayed
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.aftertransform import AfterTransform
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstart import TransformStart
diff --git a/bu4/linking/constructs/lexception.py b/bu4/linking/constructs/lexception.py
index 27e7c8f..e7b6904 100644
--- a/bu4/linking/constructs/lexception.py
+++ b/bu4/linking/constructs/lexception.py
@@ -4,8 +4,8 @@ from bu4.evaluation.constructs.eexception import EException
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.iexception import IException
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstate import TransformState
 
diff --git a/bu4/linking/constructs/linked.py b/bu4/linking/constructs/linked.py
index 00cbc34..1108982 100644
--- a/bu4/linking/constructs/linked.py
+++ b/bu4/linking/constructs/linked.py
@@ -3,7 +3,7 @@
 from bu4.evaluation.constructs.attachable import Attachable
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.transformstate import TransformState
 
 __all__ = ('Linked',)
diff --git a/bu4/linking/constructs/llambda.py b/bu4/linking/constructs/llambda.py
index 48b2509..ac6ec9a 100644
--- a/bu4/linking/constructs/llambda.py
+++ b/bu4/linking/constructs/llambda.py
@@ -6,9 +6,10 @@ from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.idelayed import IDelayed
 from bu4.indexing.constructs.ilambda import ILambda
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.ellambda import ELLambda
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.constructs.ldelayed import LDelayed
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.ellambda import ELLambda
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.aftertransform import AfterTransform
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstart import TransformStart
@@ -21,13 +22,16 @@ __all__ = ('LLambda',)
 class LLambda(Linked):
     value: Linked
 
+    def __new__(cls, name: bytes, value: Linked):
+        return Linked.__new__(LLambda) if name in value.future else LDelayed(value)
+
     def __init__(self, name: bytes, value: Linked):
         self.name = name
         self.value = value
-        self.future = self.value.future - {name}
-        self.multifuture = self.future
         self.used = name in value.future
         self.memoize = name in value.multifuture
+        self.future = self.value.future - {name}
+        self.multifuture = self.future if self.used else self.value.multifuture
 
     def attach(self, env: elvtype) -> Evaluable:
         return (
diff --git a/bu4/linking/constructs/lname.py b/bu4/linking/constructs/lname.py
index 8c29ef7..dc611c6 100644
--- a/bu4/linking/constructs/lname.py
+++ b/bu4/linking/constructs/lname.py
@@ -3,8 +3,8 @@
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.iname import IName
 from bu4.indexing.constructs.indexed import Indexed
-from bu4.linkable.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstate import TransformState
 
diff --git a/bu4/linking/constructs/lnull.py b/bu4/linking/constructs/lnull.py
index 98e934d..175e679 100644
--- a/bu4/linking/constructs/lnull.py
+++ b/bu4/linking/constructs/lnull.py
@@ -4,8 +4,8 @@ from bu4.evaluation.constructs.enull import ENull
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.indexing.constructs.indexed import Indexed
 from bu4.indexing.constructs.inull import INull
-from bu4.linkable.evaluation.elvtype import elvtype
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.states.transformfinished import TransformFinished
 from bu4.transform.states.transformstate import TransformState
 
diff --git a/bu4/linking/evaluable_from_parsed.py b/bu4/linking/evaluable_from_parsed.py
index 2689454..ceafd72 100644
--- a/bu4/linking/evaluable_from_parsed.py
+++ b/bu4/linking/evaluable_from_parsed.py
@@ -2,7 +2,7 @@
 
 from bu4.evaluation.constructs.eattachable import EAttachable
 from bu4.linkable.constructs.parsed import Parsed
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 from bu4.transform.transform import transform
 
 __all__ = ('evaluable_from_parsed',)
diff --git a/bu4/linkable/evaluation/ellambda.py b/bu4/linking/evaluation/ellambda.py
similarity index 88%
rename from bu4/linkable/evaluation/ellambda.py
rename to bu4/linking/evaluation/ellambda.py
index e8b2ab8..7e62e01 100644
--- a/bu4/linkable/evaluation/ellambda.py
+++ b/bu4/linking/evaluation/ellambda.py
@@ -3,9 +3,9 @@
 from bu4.evaluation.constructs.eattachable import EAttachable
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.evaluation.constructs.evalue import EValue
-from bu4.linkable.evaluation.elvtype import elvtype
-from bu4.linkable.evaluation.lambdaelv import LambdaElv
 from bu4.linking.constructs.linked import Linked
+from bu4.linking.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.lambdaelv import LambdaElv
 
 __all__ = ('ELLambda',)
 
diff --git a/bu4/linkable/evaluation/elvtype.py b/bu4/linking/evaluation/elvtype.py
similarity index 100%
rename from bu4/linkable/evaluation/elvtype.py
rename to bu4/linking/evaluation/elvtype.py
diff --git a/bu4/linkable/evaluation/lambdaelv.py b/bu4/linking/evaluation/lambdaelv.py
similarity index 95%
rename from bu4/linkable/evaluation/lambdaelv.py
rename to bu4/linking/evaluation/lambdaelv.py
index ba19ce6..d726f70 100644
--- a/bu4/linkable/evaluation/lambdaelv.py
+++ b/bu4/linking/evaluation/lambdaelv.py
@@ -4,7 +4,7 @@ from typing import Mapping, Iterator
 
 from bu4.evaluation.constructs.evaluable import Evaluable
 from bu4.evaluation.targets.avnamedcontainer import AVNamedContainer
-from bu4.linkable.evaluation.elvtype import elvtype
+from bu4.linking.evaluation.elvtype import elvtype
 
 __all__ = ('LambdaElv',)
 
diff --git a/bu4/tracing/trace.py b/bu4/tracing/trace.py
index e973fdb..47ca225 100644
--- a/bu4/tracing/trace.py
+++ b/bu4/tracing/trace.py
@@ -7,7 +7,7 @@ from bu4.evaluation.constructs.edelayed import EDelayed
 from bu4.evaluation.constructs.evalue import EValue
 from bu4.evaluation.sync import sync
 from bu4.indexing.evaluation.eilambda import EILambda
-from bu4.linkable.evaluation.ellambda import ELLambda
+from bu4.linking.evaluation.ellambda import ELLambda
 from bu4.tracing.probe import Probe
 
 __all__ = ('trace', 'probe_index_reset',)