diff --git a/Cargo.lock b/Cargo.lock
index d52ed55faae95e7d4472049a8de0a065e0674e55..deedc9e9bdfd7fee907ae554efa366838a74a919 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1019,9 +1019,9 @@ dependencies = [
 
 [[package]]
 name = "tudelft-nes-ppu"
-version = "1.0.4"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0cbb9dee538e10ac475f1f772bf67acfdf0b214b3741386d7c7c2df9d810f9f"
+checksum = "7a15b3b73587e951cd56923ffae7cfc70fd61fb0b4e7638e6e1ab6f8317b9630"
 dependencies = [
  "itertools",
  "log",
@@ -1031,7 +1031,7 @@ dependencies = [
 
 [[package]]
 name = "tudelft-nes-test"
-version = "1.0.0"
+version = "2.0.0"
 dependencies = [
  "bitflags",
  "log",
diff --git a/Cargo.toml b/Cargo.toml
index fbec0d01fa131c6b8773f316f492d6914762b01a..d7c22fd8c0df40d842d589820d4e2beaf252f1dc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "tudelft-nes-test"
-version = "1.0.0"
+version = "2.0.0"
 edition = "2021"
 authors = [
     "Victor Roest <victor@xirion.net>",
@@ -15,7 +15,7 @@ license = "MIT"
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-tudelft-nes-ppu = "1.0.4"
+tudelft-nes-ppu = "2.0.0"
 thiserror = "1.0.32"
 bitflags = "1.3.2"
 log = "0.4.17"
diff --git a/src/lib.rs b/src/lib.rs
index e101ce8dbb532e03e5ff30c66200b4b5431a49da..8c9009910c51116e1c2a190c11cee75402f6f0ef 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -12,7 +12,9 @@ mod nestest;
 use crate::nestest::nestest_status_code;
 
 pub trait TestableCpu: Cpu + Sized + 'static {
-    fn get_cpu(rom: &[u8]) -> Result<Self, Box<dyn Error>>;
+    type GetCpuError: Error;
+
+    fn get_cpu(rom: &[u8]) -> Result<Self, Self::GetCpuError>;
     fn set_program_counter(&mut self, value: u16);
     fn memory_read(&self, address: u16) -> u8;
 }