     /// The L register
     public var L: UInt8 = 0
 
+    /// The CPU's memory
     public var memory: Memory
 
+    /// The number of elapsed cycles
     public var cycle: UInt64 = 0
 
+    /// Create a new CPU with the provided memory
+    ///
+    /// - parameter memory: the memory this CPU will use
+    ///
+    /// - returns: a CPU with the provided memory
     public init(memory: Memory) {
         self.memory = memory
     }

/// + N - Subtract - Set if a subtraction was performed in the last math operation
/// + H - Half-Carry - Set if a carry occurred from the lower nibble in the last math operation
/// + C - Carry - Set if a carry occurred in the last math operation, or if the accumulator A is less than value for a CP operation

public struct CPU {

    /// The stack pointer

        }
    }

    /// The BC register
    /// A 16-bit register made from the 8-bit B and C registers
    public var BC: UInt16 {
        get {
            return UInt16(B) << 8 | UInt16(C)
