diff --git a/src/components/ContainerView.vue b/src/components/ContainerView.vue
index 4067358..b33f888 100644
--- a/src/components/ContainerView.vue
+++ b/src/components/ContainerView.vue
@@ -2,8 +2,9 @@
   
     {{container.name.capital}}
     
-      
{{prey.name}}
-      
{{prey.name}}
+      
+        {{prey.name}}
+      
      
@@ -24,10 +25,12 @@ function wiggle (contents: HTMLElement) {
     const prey = elem as HTMLElement
     const preyWidth = prey.clientWidth
     const preyHeight = prey.clientHeight
-    setTimeout(() => {
-      (prey as HTMLElement).style.left = (Math.floor(Math.random() * (width - preyWidth)) + "px");
-      (prey as HTMLElement).style.top = (Math.floor(Math.random() * (height - preyHeight)) + "px")
-    }, Math.random() * 3000)
+    if (!prey.classList.contains("prey-leave-active")) {
+      setTimeout(() => {
+        (prey as HTMLElement).style.left = (Math.floor(Math.random() * (width - preyWidth)) + "px");
+        (prey as HTMLElement).style.top = (Math.floor(Math.random() * (height - preyHeight)) + "px")
+      }, Math.random() * 3000)
+    }
   })
 }
 
@@ -120,28 +123,42 @@ export default class ContainerView extends Vue {
   }
 
   .container-prey {
-    animation: prey-devour-keyframes 1s;
     position: absolute;
-    transition: 3s all;
+    transition: 3s top, 3s left;
     top: 25px;
     left: 25px;
     overflow: hidden;
   }
 
-  @keyframes prey-devour-keyframes {
-    from {
-      opacity: 0;
-    } to {
-      opacity: 1;
-    }
-  }
-
   .container-prey-live {
     color: #eeeeee;
   }
 
   .container-prey-dead {
-    color: #ff8888;
+    color: #ff0000;
+  }
+
+  .prey-enter {
+    opacity: 0;
+  }
+
+  .prey-enter-active {
+    transition: 1s opacity;
+  }
+
+  .prey-leave {
+    opacity: 1;
+  }
+
+  .container-prey-live.prey-leave-active {
+    opacity: 0;
+    transition: 1s opacity, 3s top, 3s left;
+  }
+
+  .container-prey-dead.prey-leave-active {
+    opacity: 0;
+    transition: 4s filter, 4s opacity, 3s top, 3s left;
+    filter: blur(20px)
   }
 
 
diff --git a/src/game/vore.ts b/src/game/vore.ts
index 018b9a9..4b6a7a1 100644
--- a/src/game/vore.ts
+++ b/src/game/vore.ts
@@ -132,6 +132,9 @@ export interface Container extends Actionable {
   consumeVerb: Verb;
   releaseVerb: Verb;
   struggleVerb: Verb;
+
+  consumeLine: PairLineArgs;
+
 }
 
 export abstract class NormalContainer implements Container {
@@ -291,7 +294,7 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
         prey.destroyed = true
         this.digested.push(prey)
         justDigested.push(prey)
-        this.onDigest(prey)
+        damageResults.push(this.onDigest(prey))
       }
     })
 
@@ -312,7 +315,7 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
       if (prey.voreStats.Mass === 0) {
         this.absorbed.push(prey)
         justAbsorbed.push(prey)
-        this.onAbsorb(prey)
+        damageResults.push(this.onAbsorb(prey))
       }
     })
 
@@ -466,7 +469,8 @@ export class Womb extends InnerVoreContainer {
 export function biconnectContainers (outer: VoreContainer, inner: VoreContainer): void {
   outer.onDigest = (prey: Vore) => {
     outer.digested = outer.digested.filter(victim => victim !== prey)
-    return inner.consume(prey)
+    inner.digested.push(prey)
+    return inner.consumeLine(inner.owner, prey, { container: inner })
   }
 
   outer.actions.push(