diff --git a/MitziPlayer/INIFile.cs b/MitziPlayer/INIFile.cs
new file mode 100644
index 0000000..b80671f
--- /dev/null
+++ b/MitziPlayer/INIFile.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace MitziPlayer
+{
+    public class INIFile
+    {
+        public Dictionary<string, string> Data { get; set; }
+
+        public INIFile(Dictionary<string, string> data)
+        {
+            Data = data;
+        }
+
+        public static INIFile Load(string inPath)
+        {
+            Dictionary<string, string> outData = new Dictionary<string, string>();
+            string[] rawFile = File.ReadAllLines(inPath);
+            foreach (string line in rawFile)
+            {
+                if (line.StartsWith(";") || line.Trim() == "") continue;
+                outData.Add(line.Split("=")[0].Trim(), line.Split("=")[1].Trim());
+            }
+            return new INIFile(outData);
+        }
+    }
+}
diff --git a/MitziPlayer/MitziPlayer.csproj b/MitziPlayer/MitziPlayer.csproj
new file mode 100644
index 0000000..0438bed
--- /dev/null
+++ b/MitziPlayer/MitziPlayer.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="System.IO.Ports" Version="10.0.0-preview.2.25163.2" />
+  </ItemGroup>
+
+</Project>
diff --git a/MitziPlayer/Program.cs b/MitziPlayer/Program.cs
new file mode 100644
index 0000000..315881c
--- /dev/null
+++ b/MitziPlayer/Program.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
+using System.IO;
+using System.IO.Ports;
+
+using System.Timers;
+
+namespace MitziPlayer
+{
+    public class Program
+    {
+        static INIFile Config;
+        static string PathPrefix="/";
+        static int[] Signals;
+        static SerialPort port = null;
+        static System.Timers.Timer FrameTimer;
+        static long index = 0;
+        static int frameSkip = 6;
+
+        static void Main(string[] args)
+        {
+            Config = INIFile.Load(args[0]);
+            PathPrefix = Path.GetFullPath(args[0]).Replace("manifest.ini", "");
+            Signals = LoadSignals(File.ReadAllLines(PathPrefix+Config.Data["data"]));
+            //port = new SerialPort(args[1], 9600, Parity.None, 8, StopBits.One);
+            //port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
+            //port.Open();
+            FrameTimer = new System.Timers.Timer((1000d/double.Parse(Config.Data["frames-per-second"]))*frameSkip);
+            FrameTimer.Elapsed += PlaySignal;
+            FrameTimer.AutoReset = true;
+
+            PlayAudio();
+            FrameTimer.Start();
+            Console.ReadLine();
+            //port.Close();
+        }
+
+        private static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
+        {
+            Console.Write(port.ReadExisting());
+        }
+
+        static int[] LoadSignals(string[] inData)
+        {
+            List<int> tmpOut = new List<int>();
+            foreach (string frame in inData) tmpOut.Add(int.Parse(frame, NumberStyles.HexNumber));
+            return tmpOut.ToArray();
+        }
+
+        static void PlayAudio()
+        {
+            Process.Start("mpv", PathPrefix+Config.Data["audio"]);
+        }
+
+        static void PlaySignal(Object sender, ElapsedEventArgs e)
+        {
+            if (index >= Signals.Length)
+            {
+                FrameTimer.Stop();
+                Console.WriteLine("Complete!");
+                return;
+            }
+            int b = Signals[index];
+
+            char[] bytesOut = { (char)(64 | ((b & 8) | (b & 4) | (b & 2) | (b & 1))), (char)(64 | (((b & 128) | (b & 64) | (b & 32) | (b & 16)) >> 4)), (char)(64 | (((b & 2048) | (b & 1024) | (b & 512) | (b & 256)) >> 8)), (char)(64 | (((b & 32768) | (b & 16384) | (b & 8192) | (b & 4096)) >> 12)), (char)(64 | (((b & 262144) | (b & 131072) | (b & 65536)) >> 16)) };
+            port.Write(new string(bytesOut));
+            index+=frameSkip;
+        }
+    }
+}
diff --git a/PC2SSTPlayer/INIFile.cs b/PC2SSTPlayer/INIFile.cs
index 41cf682..5bd61e2 100644
--- a/PC2SSTPlayer/INIFile.cs
+++ b/PC2SSTPlayer/INIFile.cs
@@ -2,7 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 
-namespace SSTServoPlayer
+namespace PC2SSTPlayer
 {
     public class INIFile
     {
diff --git a/PC2SSTPlayer/Program.cs b/PC2SSTPlayer/Program.cs
index 4c3bd99..d123bee 100644
--- a/PC2SSTPlayer/Program.cs
+++ b/PC2SSTPlayer/Program.cs
@@ -5,7 +5,7 @@ using System.IO.Ports;
 using System.Text;
 using System.Timers;
 
-namespace SSTServoPlayer
+namespace PC2SSTPlayer
 {
     public class Program
     {
diff --git a/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino b/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino
new file mode 100644
index 0000000..0d5fdf9
--- /dev/null
+++ b/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino
@@ -0,0 +1,103 @@
+// PINKCONNECTION2 Client Program for Helen Henny/Mitzi Mozzarella Servo
+
+#include <Servo.h>
+#include <string.h>
+
+Servo servoChannel[19];
+byte onDegrees[19] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // these are incomplete, i need to tune them when i get the servos in
+byte offDegrees[19] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+int byte1 = 0;
+int byte2 = 0;
+int byte3 = 0;
+int byte4 = 0;
+int byte5 = 0;
+
+void setup() {
+  servoChannel[0].attach(2);
+  servoChannel[1].attach(3);
+  servoChannel[2].attach(4);
+  servoChannel[3].attach(5);
+  servoChannel[4].attach(6);
+  servoChannel[5].attach(7);
+  servoChannel[6].attach(8);
+  servoChannel[7].attach(9);
+  for (int i = 0; i < 19; i++) servoChannel[i].write(offDegrees[i]);
+  Serial.begin(9600);
+}
+
+void loop() {
+  if (Serial.available() > 4) {
+    byte1 = Serial.read();
+    byte2 = Serial.read();
+    byte3 = Serial.read();
+    byte4 = Serial.read();
+    byte5 = Serial.read();
+
+    if ((byte1 & 64) && (byte2 & 64))
+      if (byte1 & 1) {
+        servoChannel[0].write(onDegrees[0]);
+        digitalWrite(A0, 1);
+      } else {
+        servoChannel[0].write(offDegrees[0]);
+        digitalWrite(A0, 0);
+      }
+
+      if (byte1 & 2) {
+        servoChannel[1].write(onDegrees[1]);
+        digitalWrite(A1, 1);
+      } else {
+        servoChannel[1].write(offDegrees[1]);
+        digitalWrite(A1, 0);
+      }
+
+      if (byte1 & 4) {
+        servoChannel[2].write(onDegrees[2]);
+        digitalWrite(A2, 1);
+      } else {
+        servoChannel[2].write(offDegrees[2]);
+        digitalWrite(A2, 0);
+      }
+
+      if (byte1 & 8) {
+        servoChannel[2].write(onDegrees[3]);
+        digitalWrite(A3, 1);
+      } else {
+        //servoChannel[2].write(offDegrees[3]); dont
+        digitalWrite(A3, 0);
+      }
+
+      if (byte2 & 1) {
+        servoChannel[4].write(onDegrees[4]);
+        digitalWrite(A4, 1);
+      } else {
+        servoChannel[4].write(offDegrees[4]);
+        digitalWrite(A4, 0);
+      }
+
+      if (byte2 & 2) {
+        servoChannel[4].write(onDegrees[5]);
+        digitalWrite(A5, 1);
+      } else {
+        //servoChannel[4].write(offDegrees[5]); dont
+        digitalWrite(A5, 0);
+      }
+
+      if (byte2 & 4) {
+        servoChannel[6].write(onDegrees[6]);
+        digitalWrite(10, 1);
+      } else {
+        servoChannel[6].write(offDegrees[6]);
+        digitalWrite(10, 0);
+      }
+
+      if (byte2 & 8) {
+        servoChannel[7].write(onDegrees[7]);
+        digitalWrite(11, 1);
+      } else {
+        servoChannel[7].write(offDegrees[7]);
+        digitalWrite(11, 0);
+      }
+  
+  }
+}
diff --git a/mitzifier/Program.cs b/mitzifier/Program.cs
index 8ac87cd..0cf2141 100644
--- a/mitzifier/Program.cs
+++ b/mitzifier/Program.cs
@@ -2,7 +2,7 @@
 using System.Collections;
 using System.IO;
 
-namespace rshw2sst
+namespace mitzifier
 {
     public class Program
     {
diff --git a/mitzifier/rshw2sst.csproj b/mitzifier/mitzifier.csproj
similarity index 100%
rename from mitzifier/rshw2sst.csproj
rename to mitzifier/mitzifier.csproj