diff --git a/CloudPrint.Client.csproj b/CloudPrint.Client.csproj
index 78317cd..81a17ce 100644
--- a/CloudPrint.Client.csproj
+++ b/CloudPrint.Client.csproj
@@ -12,6 +12,7 @@
+
@@ -25,4 +26,4 @@
-
\ No newline at end of file
+
diff --git a/Infrastructure/AsyncRelayCommand.cs b/Infrastructure/AsyncRelayCommand.cs
deleted file mode 100644
index e30d481..0000000
--- a/Infrastructure/AsyncRelayCommand.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Windows.Input;
-
-namespace CloudPrint.Client.Infrastructure;
-
-public sealed class AsyncRelayCommand : ICommand
-{
- private readonly Func _execute;
- private readonly Func? _canExecute;
- private bool _isExecuting;
-
- public AsyncRelayCommand(Func execute, Func? canExecute = null)
- {
- _execute = execute ?? throw new ArgumentNullException(nameof(execute));
- _canExecute = canExecute;
- }
-
- public event EventHandler? CanExecuteChanged;
-
- public bool IsExecuting
- {
- get => _isExecuting;
- private set
- {
- if (_isExecuting == value)
- {
- return;
- }
-
- _isExecuting = value;
- RaiseCanExecuteChanged();
- }
- }
-
- public bool CanExecute(object? parameter) => !IsExecuting && (_canExecute?.Invoke() ?? true);
-
- public async void Execute(object? parameter)
- {
- if (!CanExecute(parameter))
- {
- return;
- }
-
- try
- {
- IsExecuting = true;
- await _execute().ConfigureAwait(true);
- }
- finally
- {
- IsExecuting = false;
- }
- }
-
- public void RaiseCanExecuteChanged() => CanExecuteChanged?.Invoke(this, EventArgs.Empty);
-}
\ No newline at end of file
diff --git a/Infrastructure/ObservableObject.cs b/Infrastructure/ObservableObject.cs
deleted file mode 100644
index 99cb8cb..0000000
--- a/Infrastructure/ObservableObject.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
-
-namespace CloudPrint.Client.Infrastructure;
-
-public abstract class ObservableObject : INotifyPropertyChanged
-{
- public event PropertyChangedEventHandler? PropertyChanged;
-
- protected bool SetProperty(ref T field, T value, [CallerMemberName] string? propertyName = null)
- {
- if (EqualityComparer.Default.Equals(field, value))
- {
- return false;
- }
-
- field = value;
- OnPropertyChanged(propertyName);
- return true;
- }
-
- protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
-}
\ No newline at end of file
diff --git a/Infrastructure/RelayCommand.cs b/Infrastructure/RelayCommand.cs
deleted file mode 100644
index bd4daa7..0000000
--- a/Infrastructure/RelayCommand.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System.Windows.Input;
-
-namespace CloudPrint.Client.Infrastructure;
-
-public sealed class RelayCommand : ICommand
-{
- private readonly Action