Added some abstraction and added CRC checking to stabilize the output