diff --git a/AutoTrackR2/KillTrackR_MainScript.ps1 b/AutoTrackR2/KillTrackR_MainScript.ps1
index f579183..cf36b4a 100644
--- a/AutoTrackR2/KillTrackR_MainScript.ps1
+++ b/AutoTrackR2/KillTrackR_MainScript.ps1
@@ -290,7 +290,11 @@ function Read-LogEntry {
 				}
 
 				# Get PFP
-				$victimPFP = "https://robertsspaceindustries.com$($page1.images[0].src)"
+				if ($page1.images[0].src -like "/media/*") {
+					$victimPFP = "https://robertsspaceindustries.com$($page1.images[0].src)"
+				} Else {
+					$victimPFP = $page1.images[0].src
+				}
 
 				Write-Output "NewKill=throwaway,$enemyPilot,$enemyShip,$enemyOrgs,$joinDate2,$citizenRecord,$killTime,$victimPFP"
 
diff --git a/AutoTrackR2/UpdatePage.xaml b/AutoTrackR2/UpdatePage.xaml
index 2c86ea4..e39a348 100644
--- a/AutoTrackR2/UpdatePage.xaml
+++ b/AutoTrackR2/UpdatePage.xaml
@@ -3,6 +3,33 @@
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              Height="396" Width="626">
     <Grid Background="{DynamicResource BackgroundLightBrush}">
-        <TextBlock Text="Download and update features coming soon!" FontSize="24" Foreground="{DynamicResource TextBrush}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+        <Grid Margin="0,0,5,7">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="Auto" />
+                <RowDefinition Height="Auto" />
+                <RowDefinition Height="*" />
+            </Grid.RowDefinitions>
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="*" />
+            </Grid.ColumnDefinitions>
+
+            <!-- Current Version Display -->
+            <StackPanel Orientation="Horizontal" Margin="10" Grid.Row="0">
+                <TextBlock Text="Current Version: " FontSize="16" FontWeight="Bold" VerticalAlignment="Center" Foreground="{DynamicResource AltTextBrush}" />
+                <TextBlock x:Name="CurrentVersionText" Text="2.0-beta.0" FontSize="16" VerticalAlignment="Center" Foreground="{DynamicResource TextBrush}"/>
+            </StackPanel>
+
+            <!-- Available Version Display -->
+            <StackPanel Orientation="Horizontal" Margin="10" Grid.Row="1">
+                <TextBlock Text="Available Version: " FontSize="16" FontWeight="Bold" VerticalAlignment="Center" Foreground="{DynamicResource AltTextBrush}"/>
+                <TextBlock x:Name="AvailableVersionText" Text="Checking..." FontSize="16" VerticalAlignment="Center" Foreground="{DynamicResource TextBrush}"/>
+            </StackPanel>
+
+            <!-- Install Button -->
+            <StackPanel HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="2" Grid.Column="2">
+                <Button x:Name="InstallButton" Content="Install Update" Width="150" Height="40" IsEnabled="False" 
+                    Click="InstallButton_Click"  Style="{StaticResource ButtonStyle}" FontFamily="{StaticResource Orbitron}"/>
+            </StackPanel>
+        </Grid>
     </Grid>
 </UserControl>
diff --git a/AutoTrackR2/UpdatePage.xaml.cs b/AutoTrackR2/UpdatePage.xaml.cs
index e8b4302..0120d87 100644
--- a/AutoTrackR2/UpdatePage.xaml.cs
+++ b/AutoTrackR2/UpdatePage.xaml.cs
@@ -1,12 +1,159 @@
-using System.Windows.Controls;
+using System;
+using System.Net.Http;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
 
 namespace AutoTrackR2
 {
     public partial class UpdatePage : UserControl
     {
+        private string currentVersion = "v2.0-beta.0";
+        private string latestVersion;
+
         public UpdatePage()
         {
             InitializeComponent();
+            CurrentVersionText.Text = currentVersion;
+            CheckForUpdates();
+        }
+
+        private async void CheckForUpdates()
+        {
+            try
+            {
+                // Fetch the latest release info from GitHub
+                latestVersion = await GetLatestVersionFromGitHub();
+
+                // Update the Available Version field
+                AvailableVersionText.Text = latestVersion;
+
+                // Enable the Install button if a new version is available
+                if (IsNewVersionAvailable(currentVersion, latestVersion))
+                {
+                    InstallButton.IsEnabled = true;
+                }
+            }
+            catch (Exception ex)
+            {
+                AvailableVersionText.Text = "Error checking updates.";
+                MessageBox.Show($"Failed to check for updates: {ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
+            }
+        }
+
+        private async Task<string> GetLatestVersionFromGitHub()
+        {
+            using var client = new HttpClient();
+            client.DefaultRequestHeaders.Add("User-Agent", "AutoTrackR2");
+
+            string repoOwner = "BubbaGumpShrump";
+            string repoName = "AutoTrackR2";
+
+            try
+            {
+                // Attempt to fetch the latest release
+                var url = $"https://api.github.com/repos/{repoOwner}/{repoName}/releases/latest";
+                var response = await client.GetStringAsync(url);
+
+                // Parse the JSON using System.Text.Json
+                using var document = System.Text.Json.JsonDocument.Parse(response);
+                var root = document.RootElement;
+                var tagName = root.GetProperty("tag_name").GetString();
+
+                return tagName;
+            }
+            catch (HttpRequestException ex) when (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
+            {
+                // Fallback to releases list if 'latest' not found
+                var url = $"https://api.github.com/repos/{repoOwner}/{repoName}/releases";
+                var response = await client.GetStringAsync(url);
+
+                using var document = System.Text.Json.JsonDocument.Parse(response);
+                var root = document.RootElement;
+
+                // Get the tag name of the first release
+                if (root.GetArrayLength() > 0)
+                {
+                    var firstRelease = root[0];
+                    return firstRelease.GetProperty("tag_name").GetString();
+                }
+
+                throw new Exception("No releases found.");
+            }
+        }
+
+        private bool IsNewVersionAvailable(string currentVersion, string latestVersion)
+        {
+            // Compare version strings (you can implement more complex version parsing logic if needed)
+            return string.Compare(currentVersion, latestVersion, StringComparison.Ordinal) < 0;
+        }
+
+        private async void InstallButton_Click(object sender, RoutedEventArgs e)
+        {
+            try
+            {
+                InstallButton.IsEnabled = false;
+                InstallButton.Content = "Installing...";
+
+                // Download and install the latest version
+                string downloadUrl = await GetDownloadUrlFromGitHub();
+                await DownloadAndInstallUpdate(downloadUrl);
+
+                MessageBox.Show("Update installed successfully. Please restart the application.", "Update Installed", MessageBoxButton.OK, MessageBoxImage.Information);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show($"Failed to install update: {ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
+            }
+            finally
+            {
+                InstallButton.IsEnabled = true;
+                InstallButton.Content = "Install Update";
+            }
+        }
+
+        private async Task<string> GetDownloadUrlFromGitHub()
+        {
+            using var client = new HttpClient();
+            client.DefaultRequestHeaders.Add("User-Agent", "AutoTrackR2");
+
+            // GitHub repo details
+            string repoOwner = "BubbaGumpShrump";
+            string repoName = "AutoTrackR2";
+
+            var url = $"https://api.github.com/repos/{repoOwner}/{repoName}/releases/latest";
+            var response = await client.GetStringAsync(url);
+
+            // Parse the JSON using System.Text.Json
+            using var document = System.Text.Json.JsonDocument.Parse(response);
+            var root = document.RootElement;
+
+            // Extract the browser download URL for the first asset
+            var assets = root.GetProperty("assets");
+            if (assets.GetArrayLength() > 0)
+            {
+                var downloadUrl = assets[0].GetProperty("browser_download_url").GetString();
+                return downloadUrl;
+            }
+            else
+            {
+                throw new Exception("No assets found in the latest release.");
+            }
+        }
+
+        private async Task DownloadAndInstallUpdate(string url)
+        {
+            string tempFilePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "update.exe");
+
+            using var client = new HttpClient();
+            var response = await client.GetAsync(url);
+            response.EnsureSuccessStatusCode();
+
+            using var fs = new System.IO.FileStream(tempFilePath, System.IO.FileMode.Create);
+            await response.Content.CopyToAsync(fs);
+
+            // Launch the installer
+            System.Diagnostics.Process.Start(tempFilePath);
         }
     }
 }