diff --git a/404.html b/404.html
index 15df4cb62e8c2b71282ebd31f380db8a337126a6..37b3bbae567ded0704bda04141471c220d2756ad 100644
--- a/404.html
+++ b/404.html
@@ -3,56 +3,52 @@
 <head>
     <meta charset="UTF-8">
     <title>404 - Page not found</title>
-    <link href="/css/404.css" rel="stylesheet">
+    <link href="/css/error.css" rel="stylesheet">
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+    <script src="https://www.mattboldt.com/demos/typed-js/js/typed.custom.js"></script>
 </head>
 <body>
 <!-- Matomo Image Tracker-->
 <img src="https://matomo.jonasled.de/matomo.php?idsite=1&amp;rec=1" style="border:0" alt="" />
 <!-- End Matomo -->
-<div class="moon"></div>
-<div class="moon__crater moon__crater1"></div>
-<div class="moon__crater moon__crater2"></div>
-<div class="moon__crater moon__crater3"></div>
-
-<div class="star star1"></div>
-<div class="star star2"></div>
-<div class="star star3"></div>
-<div class="star star4"></div>
-<div class="star star5"></div>
-
-<div class="error">
-    <div class="error__title">404</div>
-    <div class="error__subtitle">Hmmm...</div>
-    <div class="error__description">It looks like one of the  developers fell asleep</div>
+<div id="particles-js"></div>
+<div class="terminal-window">
+    <header>
+        <div class="button green"></div>
+        <div class="button yellow"></div>
+        <div class="button red"></div>
+    </header>
+    <section class="terminal">
+        <div class="history"></div>
+        $&nbsp;<span class="prompt"></span>
+        <span class="typed-cursor"></span>
+    </section>
 </div>
-
-<div class="astronaut">
-    <div class="astronaut__backpack"></div>
-    <div class="astronaut__body"></div>
-    <div class="astronaut__body__chest"></div>
-    <div class="astronaut__arm-left1"></div>
-    <div class="astronaut__arm-left2"></div>
-    <div class="astronaut__arm-right1"></div>
-    <div class="astronaut__arm-right2"></div>
-    <div class="astronaut__arm-thumb-left"></div>
-    <div class="astronaut__arm-thumb-right"></div>
-    <div class="astronaut__leg-left"></div>
-    <div class="astronaut__leg-right"></div>
-    <div class="astronaut__foot-left"></div>
-    <div class="astronaut__foot-right"></div>
-    <div class="astronaut__wrist-left"></div>
-    <div class="astronaut__wrist-right"></div>
-
-    <div class="astronaut__cord">
-        <canvas id="cord" height="500px" width="500px"></canvas>
-    </div>
-
-    <div class="astronaut__head">
-        <canvas id="visor" width="60px" height="60px"></canvas>
-        <div class="astronaut__head-visor-flare1"></div>
-        <div class="astronaut__head-visor-flare2"></div>
-    </div>
+<!-- data -->
+<div class="terminal-data mimik-run-output">
 </div>
-<script src="/js/404.js"></script>
+<script>
+    var data = [
+        {
+            action: 'type',
+            strings: ["Accessing files.."],
+            output: 'grabbing files..<br><br>',
+            postDelay: 1000
+        },
+        {
+            action: 'type',
+            strings: ["404 File not found"],
+            output: '<span class="gray">It looks like you want to access a file that\'s not available</><br>&nbsp;',
+            postDelay: 1000
+        },
+        {
+            action: 'type',
+            strings: ["These are not the error codes you're looking for.", 'Please either report this error to an administrator or return back and forget you were here...'],
+            postDelay: 2000
+        }
+
+    ];
+</script>
+<script src="/js/error.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/css/error.css b/css/error.css
index cc8912f0f61434c3f722e1c2012050bed60701c4..3e24e1c1825f6646f9e832582ab892eda72b6c40 100644
--- a/css/error.css
+++ b/css/error.css
@@ -1,642 +1,172 @@
-html,
-body {
-    height: 100%;
-    width: 100%;
-    margin: 0;
-    background: linear-gradient(90deg, rgba(47,54,64,1) 23%, rgba(24,27,32,1) 100%);
-}
-
-.moon {
-    background: linear-gradient(90deg, rgba(208,208,208,1) 48%, rgba(145,145,145,1) 100%);
-    position: absolute;
-    top: -100px;
-    left: -300px;
-    width: 900px;
-    height: 900px;
-    content: '';
-    border-radius: 100%;
-    box-shadow: 0 0 30px -4px rgba(0,0,0,0.5);
-}
-
-.moon__crater {
-    position: absolute;
-    content: '';
-    border-radius: 100%;
-    background: linear-gradient(90deg, rgba(122,122,122,1) 38%, rgba(195,195,195,1) 100%);
-    opacity: 0.6;
-}
-
-.moon__crater1 {
-    top: 250px;
-    left: 500px;
-    width: 60px;
-    height: 180px;
-}
-
-.moon__crater2 {
-    top: 650px;
-    left: 340px;
-    width: 40px;
-    height: 80px;
-    transform: rotate(55deg);
-}
-
-.moon__crater3 {
-    top: -20px;
-    left: 40px;
-    width: 65px;
-    height: 120px;
-    transform: rotate(250deg);
-}
-
-.star {
-    background: grey;
-    position: absolute;
-    width: 5px;
-    height: 5px;
-    content: '';
-    border-radius: 100%;
-    transform: rotate(250deg);
-    opacity: 0.4;
-    animation-name: shimmer;
-    animation-duration: 1.5s;
-    animation-iteration-count: infinite;
-    animation-direction: alternate;
-}
-
-@keyframes shimmer {
-    from {opacity: 0;}
-    to {opacity: 0.7;}
-}
-
-.star1 {
-    top: 40%;
-    left: 50%;
-    animation-delay: 1s;
-}
-
-.star2 {
-    top: 60%;
-    left: 90%;
-    animation-delay: 3s;
-}
-
-.star3 {
-    top: 10%;
-    left: 70%;
-    animation-delay: 2s;
-}
-
-.star4 {
-    top: 90%;
-    left: 40%;
-}
-
-.star5 {
-    top: 20%;
-    left: 30%;
-    animation-delay: 0.5s;
-}
-
-.error {
-    position: absolute;
-    left: 100px;
-    top: 400px;
-    transform: translateY(-60%);
-    font-family: 'Righteous', cursive;
-    color: #363e49;
-}
-
-.error__title {
-    font-size: 10em;
-}
-
-.error__subtitle {
-    font-size: 2em;
-}
-
-.error__description {
-    opacity: 0.5;
-}
-
-.astronaut {
-    position: absolute;
-    width: 185px;
-    height: 300px;
-    left: 70%;
-    top: 50%;
-    transform: translate(-50%, -50%) rotate(20deg) scale(1.2);
-}
-
-.astronaut__head {
-    background-color: white;
-    position: absolute;
-    top: 60px;
-    left: 60px;
-    width: 60px;
-    height: 60px;
-    content: '';
-    border-radius: 2em;
-}
-
-.astronaut__head-visor-flare1 {
-    background-color: #7f8fa6;
-    position: absolute;
-    top: 28px;
-    left: 40px;
-    width: 10px;
-    height: 10px;
-    content: '';
-    border-radius: 2em;
-    opacity: 0.5;
-}
-
-.astronaut__head-visor-flare2 {
-    background-color: #718093;
-    position: absolute;
-    top: 40px;
-    left: 38px;
-    width: 5px;
-    height: 5px;
-    content: '';
-    border-radius: 2em;
-    opacity: 0.3;
-}
-
-.astronaut__backpack {
-    background-color: #bfbfbf;
-    position: absolute;
-    top: 90px;
-    left: 47px;
-    width: 86px;
-    height: 90px;
-    content: '';
-    border-radius: 8px;
-}
-
-.astronaut__body {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 115px;
-    left: 55px;
-    width: 70px;
-    height: 80px;
-    content: '';
-    border-radius: 8px;
-}
-
-.astronaut__body__chest {
-    background-color: #d9d9d9;
-    position: absolute;
-    top: 140px;
-    left: 68px;
-    width: 45px;
-    height: 25px;
-    content: '';
-    border-radius: 6px;
-}
-
-.astronaut__arm-left1 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 127px;
-    left: 9px;
-    width: 65px;
-    height: 20px;
-    content: '';
-    border-radius: 8px;
-    transform: rotate(-30deg);
-}
-
-.astronaut__arm-left2 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 102px;
-    left: 7px;
-    width: 20px;
-    height: 45px;
-    content: '';
-    transform: rotate(-12deg);
-    border-radius: 8em 8em 8px 8px;
-}
-
-.astronaut__arm-right1 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 113px;
-    left: 100px;
-    width: 65px;
-    height: 20px;
-    content: '';
-    border-radius: 8px;
-    transform: rotate(-10deg);
-}
-
-.astronaut__arm-right2 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 78px;
-    left: 141px;
-    width: 20px;
-    height: 45px;
-    content: '';
-    transform: rotate(-10deg);
-    border-radius: 8em 8em 8px 8px;
-}
-
-.astronaut__arm-thumb-left {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 110px;
-    left: 21px;
-    width: 10px;
-    height: 6px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-35deg);
-}
-
-.astronaut__arm-thumb-right {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 90px;
-    left: 133px;
-    width: 10px;
-    height: 6px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(20deg);
-}
-
-.astronaut__wrist-left {
-    background-color: #e67e22;
-    position: absolute;
-    top: 122px;
-    left: 7px;
-    width: 21px;
-    height: 4px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-15deg);
-}
-
-.astronaut__wrist-right {
-    background-color: #e67e22;
-    position: absolute;
-    top: 98px;
-    left: 141px;
-    width: 21px;
-    height: 4px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-10deg);
-}
-
-.astronaut__leg-left {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 188px;
-    left: 50px;
-    width: 23px;
-    height: 75px;
-    content: '';
-    transform: rotate(10deg);
-}
-
-.astronaut__leg-right {
-    background-color: #e6e6e6;
+#particles-js {
     position: absolute;
-    top: 188px;
-    left: 108px;
-    width: 23px;
-    height: 75px;
-    content: '';
-    transform: rotate(-10deg);
-}
-
-html,
-body {
-    height: 100%;
     width: 100%;
-    margin: 0;
-    background: linear-gradient(90deg, rgba(47,54,64,1) 23%, rgba(24,27,32,1) 100%);
-}
-
-.moon {
-    background: linear-gradient(90deg, rgba(208,208,208,1) 48%, rgba(145,145,145,1) 100%);
-    position: absolute;
-    top: -100px;
-    left: -300px;
-    width: 900px;
-    height: 900px;
-    content: '';
-    border-radius: 100%;
-    box-shadow: 0 0 30px -4px rgba(0,0,0,0.5);
-}
-
-.moon__crater {
-    position: absolute;
-    content: '';
-    border-radius: 100%;
-    background: linear-gradient(90deg, rgba(122,122,122,1) 38%, rgba(195,195,195,1) 100%);
-    opacity: 0.6;
-}
-
-.moon__crater1 {
-    top: 250px;
-    left: 500px;
-    width: 60px;
-    height: 180px;
-}
-
-.moon__crater2 {
-    top: 650px;
-    left: 340px;
-    width: 40px;
-    height: 80px;
-    transform: rotate(55deg);
-}
-
-.moon__crater3 {
-    top: -20px;
-    left: 40px;
-    width: 65px;
-    height: 120px;
-    transform: rotate(250deg);
-}
-
-@keyframes shimmer {
-    from {opacity: 0;}
-    to {opacity: 0.7;}
-}
-
-.star1 {
-    top: 40%;
-    left: 50%;
-    animation-delay: 1s;
-}
-
-.star2 {
-    top: 60%;
-    left: 90%;
-    animation-delay: 3s;
-}
-
-.star3 {
-    top: 10%;
-    left: 70%;
-    animation-delay: 2s;
-}
-
-.star4 {
-    top: 90%;
-    left: 40%;
-}
-
-.star5 {
-    top: 20%;
-    left: 30%;
-    animation-delay: 0.5s;
-}
-
-.error {
-    position: absolute;
-    left: 100px;
-    top: 400px;
-    transform: translateY(-60%);
-    font-family: 'Righteous', cursive;
-    color: #363e49;
-}
-
-.error__title {
-    font-size: 10em;
-}
-
-.error__subtitle {
-    font-size: 2em;
-}
-
-.error__description {
-    opacity: 0.5;
-}
-
-.astronaut {
-    position: absolute;
-    width: 185px;
-    height: 300px;
-    left: 70%;
-    top: 50%;
-    transform: translate(-50%, -50%) rotate(20deg) scale(1.2);
-}
-
-.astronaut__head {
-    background-color: white;
-    position: absolute;
-    top: 60px;
-    left: 60px;
-    width: 60px;
-    height: 60px;
-    content: '';
-    border-radius: 2em;
-}
-
-.astronaut__head-visor-flare1 {
-    background-color: #7f8fa6;
-    position: absolute;
-    top: 28px;
-    left: 40px;
-    width: 10px;
-    height: 10px;
-    content: '';
-    border-radius: 2em;
-    opacity: 0.5;
-}
-
-.astronaut__head-visor-flare2 {
-    background-color: #718093;
-    position: absolute;
-    top: 40px;
-    left: 38px;
-    width: 5px;
-    height: 5px;
-    content: '';
-    border-radius: 2em;
-    opacity: 0.3;
-}
-
-.astronaut__backpack {
-    background-color: #bfbfbf;
-    position: absolute;
-    top: 90px;
-    left: 47px;
-    width: 86px;
-    height: 90px;
-    content: '';
-    border-radius: 8px;
-}
-
-.astronaut__body {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 115px;
-    left: 55px;
-    width: 70px;
-    height: 80px;
-    content: '';
-    border-radius: 8px;
-}
-
-.astronaut__body__chest {
-    background-color: #d9d9d9;
-    position: absolute;
-    top: 140px;
-    left: 68px;
-    width: 45px;
-    height: 25px;
-    content: '';
-    border-radius: 6px;
-}
-
-.astronaut__arm-left1 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 127px;
-    left: 9px;
-    width: 65px;
-    height: 20px;
-    content: '';
-    border-radius: 8px;
-    transform: rotate(-30deg);
-}
-
-.astronaut__arm-left2 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 102px;
-    left: 7px;
-    width: 20px;
-    height: 45px;
-    content: '';
-    transform: rotate(-12deg);
-    border-radius: 8em 8em 8px 8px;
-}
-
-.astronaut__arm-right1 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 113px;
-    left: 100px;
-    width: 65px;
-    height: 20px;
-    content: '';
-    border-radius: 8px;
-    transform: rotate(-10deg);
-}
-
-.astronaut__arm-right2 {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 78px;
-    left: 141px;
-    width: 20px;
-    height: 45px;
-    content: '';
-    transform: rotate(-10deg);
-    border-radius: 8em 8em 8px 8px;
+    height: 100%;
 }
 
-.astronaut__arm-thumb-left {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 110px;
-    left: 21px;
-    width: 10px;
-    height: 6px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-35deg);
+body {
+    background: #97cfca;
+    overflow: hidden;
 }
 
-.astronaut__arm-thumb-right {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 90px;
-    left: 133px;
-    width: 10px;
-    height: 6px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(20deg);
+.terminal-window {
+    text-align: left;
+    width: 37.5rem;
+    height: 22.5rem;
+    border-radius: .625rem;
+    margin: auto;
+    position: relative;
+    top: 10.5rem;
 }
 
-.astronaut__wrist-left {
-    background-color: #e67e22;
-    position: absolute;
-    top: 122px;
-    left: 7px;
-    width: 21px;
-    height: 4px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-15deg);
+.terminal-window header {
+    background: #E0E8F0;
+    height: 1.875rem;
+    border-radius: .5rem .5rem 0 0;
+    padding-left: .625rem;
 }
 
-.astronaut__wrist-right {
-    background-color: #e67e22;
-    position: absolute;
-    top: 98px;
-    left: 141px;
-    width: 21px;
-    height: 4px;
-    content: '';
-    border-radius: 8em;
-    transform: rotate(-10deg);
+.terminal-window header .button {
+    width: .75rem;
+    height: .75rem;
+    margin: .625rem .25rem 0 0;
+    display: inline-block;
+    border-radius: .5rem;
 }
 
-.astronaut__leg-left {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 188px;
-    left: 50px;
-    width: 23px;
-    height: 75px;
-    content: '';
-    transform: rotate(10deg);
+.terminal-window header .button.green {
+    background: #3BB662;
 }
 
-.astronaut__leg-right {
-    background-color: #e6e6e6;
-    position: absolute;
-    top: 188px;
-    left: 108px;
-    width: 23px;
-    height: 75px;
-    content: '';
-    transform: rotate(-10deg);
+.terminal-window header .button.yellow {
+    background: #E5C30F;
 }
 
-.astronaut__foot-left {
-    background-color: white;
-    position: absolute;
-    top: 240px;
-    left: 43px;
-    width: 28px;
-    height: 20px;
-    content: '';
-    transform: rotate(10deg);
-    border-radius: 8em 8em 3px 3px;
-    border-bottom: 4px solid #e67e22;
+.terminal-window header .button.red {
+    background: #E75448;
 }
 
-.astronaut__foot-right {
-    background-color: white;
+.terminal-window section.terminal {
+    color: white;
+    font-family: Menlo, Monaco, "Consolas", "Courier New", "Courier";
+    font-size: 11pt;
+    background: #30353A;
+    padding: .625rem;
+    box-sizing: border-box;
     position: absolute;
-    top: 240px;
-    left: 111px;
-    width: 28px;
-    height: 20px;
-    content: '';
-    transform: rotate(-10deg);
-    border-radius: 8em 8em 3px 3px;
-    border-bottom: 4px solid #e67e22;
-}
+    width: 100%;
+    top: 1.875rem;
+    bottom: 0;
+    overflow: auto;
+}
+
+.terminal-window section.terminal .typed-cursor {
+    opacity: 1;
+    -webkit-animation: blink 0.7s infinite;
+    -moz-animation: blink 0.7s infinite;
+    animation: blink 0.7s infinite;
+}
+@keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+@-webkit-keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+@-moz-keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+
+.terminal-data { display: none; }
+.terminal-window .gray { color: gray; }
+.terminal-window .green { color: green;}
+
+/*Media for mobile responsive viewing*/
+@media only screen and (max-width: 600px) {
+    .terminal-window {
+        text-align: left;
+        width: 37.5vmin;
+        height: 22.5vmin;
+        border-radius: .625vmin;
+        margin: auto;
+        position: relative;
+        top: 30.5vmin;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window header {
+        background: #E0E8F0;
+        height: 1.875vmin;
+        border-radius: .5vmin .5vmin 0 0;
+        padding-left: 1vmin;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window header .button {
+        width: .75vmin;
+        height: .75vmin;
+        margin: .625vmin .25vmin 0 0;
+        display: inline-block;
+        border-radius: .5vmin;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window header .button.green {
+        background: #3BB662;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window header .button.yellow {
+        background: #E5C30F;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window header .button.red {
+        background: #E75448;
+    }
+}
+@media only screen and (max-width: 600px) {
+    .terminal-window section.terminal {
+        color: white;
+        font-family: Menlo, Monaco, "Consolas", "Courier New", "Courier";
+        font-size: .6875vmin;
+        background: #30353A;
+        padding: .625vmin;
+        box-sizing: border-box;
+        position: absolute;
+        width: 100%;
+        top: 1.875vmin;
+        bottom: 0;
+        overflow: auto;
+    }
+}
+.terminal-window section.terminal .typed-cursor {
+    opacity: 1;
+    -webkit-animation: blink 0.7s infinite;
+    -moz-animation: blink 0.7s infinite;
+    animation: blink 0.7s infinite;
+}
+@keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+@-webkit-keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+@-moz-keyframes blink{
+    0% { opacity:1; }
+    50% { opacity:0; }
+    100% { opacity:1; }
+}
+
+.terminal-data { display: none; }
+.terminal-window .gray { color: gray; }
+.terminal-window .green { color: green;}
\ No newline at end of file
diff --git a/js/error.js b/js/error.js
index 80f1cae31617f9722824777e624d36129e7f61f6..81131a90313ac7df5d20bd0769b16a47bc2b4389 100644
--- a/js/error.js
+++ b/js/error.js
@@ -1,77 +1,44 @@
-function drawVisor() {
-    const canvas = document.getElementById('visor');
-    const ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.moveTo(5, 45);
-    ctx.bezierCurveTo(15, 64, 45, 64, 55, 45);
-
-    ctx.lineTo(55, 20);
-    ctx.bezierCurveTo(55, 15, 50, 10, 45, 10);
-
-    ctx.lineTo(15, 10);
-
-    ctx.bezierCurveTo(15, 10, 5, 10, 5, 20);
-    ctx.lineTo(5, 45);
-
-    ctx.fillStyle = '#2f3640';
-    ctx.strokeStyle = '#f5f6fa';
-    ctx.fill();
-    ctx.stroke();
-}
-
-const cordCanvas = document.getElementById('cord');
-const ctx = cordCanvas.getContext('2d');
-
-let y1 = 160;
-let y2 = 100;
-let y3 = 100;
-
-let y1Forward = true;
-let y2Forward = false;
-let y3Forward = true;
-
-function animate() {
-    requestAnimationFrame(animate);
-    ctx.clearRect(0, 0, innerWidth, innerHeight);
-
-    ctx.beginPath();
-    ctx.moveTo(130, 170);
-    ctx.bezierCurveTo(250, y1, 345, y2, 400, y3);
-
-    ctx.strokeStyle = 'white';
-    ctx.lineWidth = 8;
-    ctx.stroke();
-
-
-    if (y1 === 100) {
-        y1Forward = true;
-    }
-
-    if (y1 === 300) {
-        y1Forward = false;
-    }
-
-    if (y2 === 100) {
-        y2Forward = true;
-    }
-
-    if (y2 === 310) {
-        y2Forward = false;
-    }
-
-    if (y3 === 100) {
-        y3Forward = true;
+$(function() {
+    runScripts(data, 0);
+});
+
+function runScripts(data, pos) {
+    var prompt = $('.prompt'),
+        script = data[pos];
+    if(script.clear === true) {
+        $('.history').html('');
     }
-
-    if (y3 === 317) {
-        y3Forward = false;
+    switch(script.action) {
+        case 'type':
+            // cleanup for next execution
+            prompt.removeData();
+            $('.typed-cursor').text('');
+            prompt.typed({
+                strings: script.strings,
+                typeSpeed: 30,
+                callback: function() {
+                    var history = $('.history').html();
+                    history = history ? [history] : [];
+                    history.push('$ ' + prompt.text());
+                    if(script.output) {
+                        history.push(script.output);
+                        prompt.html('');
+                        $('.history').html(history.join('<br>'));
+                    }
+                    // scroll to bottom of screen
+                    $('.terminal').scrollTop($('.terminal').height());
+                    // Run next script
+                    pos++;
+                    if(pos < data.length) {
+                        setTimeout(function() {
+                            runScripts(data, pos);
+                        }, script.postDelay || 1000);
+                    }
+                }
+            });
+            break;
+        case 'view':
+
+            break;
     }
-
-    y1Forward ? y1 += 1 : y1 -= 1;
-    y2Forward ? y2 += 1 : y2 -= 1;
-    y3Forward ? y3 += 1 : y3 -= 1;
 }
-
-drawVisor();
-animate();
\ No newline at end of file