     // MARK: - Byte
     
     /// Returns the `UInt8`-value of the given `index`.
-    func getByte(index: Int) throws -> UInt8 {
+    public func getByte(index: Int) throws -> UInt8 {
         /// Check if `index` is within bounds of `bytes`
         guard (0..<(bytesStore.count)).contains(index) else {
             throw BinError.outOfBounds

    
    /// Returns the binary value `0` or `1` of the given position and
    /// increments the reading cursor by one bit.
    mutating func readBit() throws -> UInt8 {
        defer { bitCursor = incrementedCursorBy(bits: 1) }
        return try getBit(index: bitCursor)
    }
    
    /// Returns the `Int`-value of the next n-bits (`quantitiy`)
    /// and increments the reading cursor by n-bits.
    mutating func readBits(quantitiy: Int) throws -> Int {
        guard (0...(bytesStore.count * byteSize)).contains(bitCursor + quantitiy) else {
            throw BinError.outOfBounds
        }

    }
    
    /// Returns the `UInt8`-value of the next byte and increments the reading cursor.
    public mutating func readByte() throws -> UInt8 {
        let result = try getByte(index: bitCursor / byteSize)
        bitCursor = incrementedCursorBy(bytes: 1)
        return result
