diff --git a/frontends/web/ts/gb.ts b/frontends/web/ts/gb.ts
index 1f044191befd185d2cc28968fedd489e9951f0d8..1f57998f263097daf25aa675039d86e6c9c8db21 100644
--- a/frontends/web/ts/gb.ts
+++ b/frontends/web/ts/gb.ts
@@ -31,10 +31,13 @@ import {
 import {
     Cartridge,
     default as _wasm,
+    name,
     GameBoy,
     PadKey,
     GameBoyMode,
-    GameBoySpeed
+    GameBoySpeed,
+    version,
+    system
 } from "../lib/boytacean";
 import info from "../package.json";
 
@@ -485,12 +488,12 @@ export class GameboyEmulator extends EmulatorBase implements Emulator {
     }
 
     get name(): string {
-        return this.gameBoy?.name() || info.name;
+        return name() || info.name;
     }
 
     get device(): Entry {
         return {
-            text: "Game Boy",
+            text: system(),
             url: "https://en.wikipedia.org/wiki/Game_Boy"
         };
     }
@@ -501,7 +504,7 @@ export class GameboyEmulator extends EmulatorBase implements Emulator {
 
     get version(): Entry | undefined {
         return {
-            text: this.gameBoy?.version() ?? info.version,
+            text: version() ?? info.version,
             url: "https://github.com/joamag/boytacean/blob/master/CHANGELOG.md"
         };
     }
diff --git a/src/gb.rs b/src/gb.rs
index c3db3aed0d20bbbcf0561b4d5eb0dc0baedb405f..7b29e97db47acefb0bf71cb5ae42ca9a7b1590bc 100644
--- a/src/gb.rs
+++ b/src/gb.rs
@@ -11,8 +11,9 @@ use crate::{
     data::{BootRom, CGB_BOOT, DMG_BOOT, DMG_BOOTIX, MGB_BOOTIX, SGB_BOOT},
     devices::{printer::PrinterDevice, stdout::StdoutDevice},
     dma::Dma,
-    gen::{COMPILATION_DATE, COMPILATION_TIME, COMPILER, COMPILER_VERSION, NAME, VERSION},
+    gen::{COMPILATION_DATE, COMPILATION_TIME, COMPILER, COMPILER_VERSION},
     genie::{GameGenie, GameGenieCode},
+    info::version,
     mmu::Mmu,
     pad::{Pad, PadKey},
     ppu::{
@@ -22,7 +23,7 @@ use crate::{
     rom::{Cartridge, RamSize},
     serial::{NullDevice, Serial, SerialDevice},
     timer::Timer,
-    util::{capitalize, read_file},
+    util::read_file,
 };
 
 #[cfg(feature = "wasm")]
@@ -701,16 +702,6 @@ impl GameBoy {
         tile.palette_buffer(self.ppu().palette_bg())
     }
 
-    /// Obtains the name of the emulator.
-    pub fn name(&self) -> String {
-        capitalize(NAME)
-    }
-
-    /// Obtains the version of the emulator.
-    pub fn version(&self) -> String {
-        String::from(VERSION)
-    }
-
     /// Obtains the name of the compiler that has been
     /// used in the compilation of the base Boytacean
     /// library. Can be used for diagnostics.
@@ -874,7 +865,7 @@ impl GameBoy {
         format!(
             "{}  {}\n{}  {}\n{}  {}\n{}  {}\n{}  {}\n{}  {}",
             version_l,
-            VERSION,
+            version(),
             mode_l,
             self.mode(),
             clock_l,
diff --git a/src/info.rs b/src/info.rs
new file mode 100644
index 0000000000000000000000000000000000000000..ef73a8dd7b7d1d443e232e07a6295dba744c1004
--- /dev/null
+++ b/src/info.rs
@@ -0,0 +1,25 @@
+use crate::{
+    gen::{NAME, VERSION},
+    util::capitalize,
+};
+
+#[cfg(feature = "wasm")]
+use wasm_bindgen::prelude::*;
+
+/// Obtains the name of the emulator.
+#[cfg_attr(feature = "wasm", wasm_bindgen)]
+pub fn name() -> String {
+    capitalize(NAME)
+}
+
+/// Obtains the version of the emulator.
+#[cfg_attr(feature = "wasm", wasm_bindgen)]
+pub fn version() -> String {
+    String::from(VERSION)
+}
+
+/// Obtains the system this emulator is emulating..
+#[cfg_attr(feature = "wasm", wasm_bindgen)]
+pub fn system() -> String {
+    String::from("Game Boy")
+}
diff --git a/src/lib.rs b/src/lib.rs
index 560330b699fe18db9bd4a5f4f03c05047b98072e..81e68ee4cb0f7aa6bdb8c7faf724d15e23422dff 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -8,6 +8,7 @@ pub mod dma;
 pub mod gb;
 pub mod gen;
 pub mod genie;
+pub mod info;
 pub mod inst;
 pub mod macros;
 pub mod mmu;
diff --git a/src/state.rs b/src/state.rs
index 507868a4f09b9e0c2a00a2e54e1129c410102d95..125819ebc2304f42c7e6f81cb83c415209e47e64 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -16,9 +16,9 @@ pub trait Serialize {
 }
 
 pub struct BeesState {
-    pub name: BeesName,
-    pub info: BeesInfo,
-    pub core: BeesCore,
+    name: BeesName,
+    info: BeesInfo,
+    core: BeesCore,
 }
 
 impl Serialize for BeesState {
@@ -34,8 +34,8 @@ impl Serialize for BeesState {
 }
 
 pub struct BeesBlockHeader {
-    pub magic: String,
-    pub size: u32,
+    magic: String,
+    size: u32,
 }
 
 impl BeesBlockHeader {
@@ -60,18 +60,18 @@ impl Serialize for BeesBlockHeader {
 }
 
 pub struct BeesBuffer {
-    pub size: u32,
-    pub offset: u32,
+    size: u32,
+    offset: u32,
 }
 
 pub struct BeesFooter {
-    pub start_offset: u32,
-    pub magic: u32,
+    start_offset: u32,
+    magic: u32,
 }
 
 pub struct BeesName {
-    pub header: BeesBlockHeader,
-    pub name: String,
+    header: BeesBlockHeader,
+    name: String,
 }
 
 impl BeesName {
@@ -98,9 +98,9 @@ impl Serialize for BeesName {
 }
 
 pub struct BeesInfo {
-    pub header: BeesBlockHeader,
-    pub title: [u8; 16],
-    pub checksum: [u8; 2],
+    header: BeesBlockHeader,
+    title: [u8; 16],
+    checksum: [u8; 2],
 }
 
 impl Serialize for BeesInfo {
@@ -110,35 +110,35 @@ impl Serialize for BeesInfo {
 }
 
 pub struct BeesCore {
-    pub header: BeesBlockHeader,
+    header: BeesBlockHeader,
 
-    pub major: u16,
-    pub minor: u16,
+    major: u16,
+    minor: u16,
 
-    pub model: u32,
+    model: u32,
 
-    pub pc: u16,
-    pub af: u16,
-    pub bc: u16,
-    pub de: u16,
-    pub hl: u16,
-    pub sp: u16,
+    pc: u16,
+    af: u16,
+    bc: u16,
+    de: u16,
+    hl: u16,
+    sp: u16,
 
-    pub ime: u8,
-    pub ie: u8,
+    ime: u8,
+    ie: u8,
     // 0 = running; 1 = halted; 2 = stopped
-    pub execution_mode: u8,
+    execution_mode: u8,
     _padding: u8,
 
-    pub io_registers: [u8; 128],
+    io_registers: [u8; 128],
 
-    pub ram: BeesBuffer,
-    pub vram: BeesBuffer,
-    pub mbc_ram: BeesBuffer,
-    pub oam: BeesBuffer,
-    pub hram: BeesBuffer,
-    pub background_palettes: BeesBuffer,
-    pub object_palettes: BeesBuffer,
+    ram: BeesBuffer,
+    vram: BeesBuffer,
+    mbc_ram: BeesBuffer,
+    oam: BeesBuffer,
+    hram: BeesBuffer,
+    background_palettes: BeesBuffer,
+    object_palettes: BeesBuffer,
 }
 
 impl Serialize for BeesCore {