 void printDataArray() {
     Serial.println("==== Sensor data captured ===");
     
-    byte sensorNumber = data[1] >> 2;
-    byte powerOnUUID = (data[0] << 2) | (data[1] & 3);
-    byte powerState = data[2] >> 3;
+    byte sensorChannel = getSensorChannel();
+    byte powerOnUUID = getPowerUUID();
+    byte powerState = getPowerStatus();
     float temperature = (float)getTemperature() / 10;
     byte humidity = getHumidity();
-    boolean checkSumMatches = checkSumMatch();
-
-    Serial.print("No: ");
-    Serial.println(sensorNumber);
+
+    Serial.print("Channel: ");
+    Serial.println(sensorChannel);
 
     Serial.print("Power UUID: ");
     Serial.println(powerOnUUID);

void setState(byte st, boolean condition) {
    state = condition ? st : 0;
}


int getHumidity() {

    //Humidity is stored in nibbles T7,T8
    //since bits in these nibbles are already in reversed order
    //we just have to get number by reversing nibbles orderßßß
    int humidity = ((int)data[7] << 4) | (int)data[6];

    //negative number, use two's compliment conversion
    humidity = ~humidity + 1;

    //humidity is stored as 100 - humidity
    return 100 - humidity;
}

void fillDataArray(byte bitNumber, boolean isOne) {
    byte dataArrayIndex = bitNumber / BITS_PER_PACKET;
    byte bitInNibble = bitNumber % 4;

    if (bitInNibble == 0) {
        // if it's the first bit in nibble -
        // clear nibble since it could be filled with random data at this time
        data[dataArrayIndex] = 0;
    }

    //Write all nibbles in reversed order
    //so it will be easier to do calculations later
    data[dataArrayIndex] |= (isOne << bitInNibble);
}

// Matcher for divider bit
