Split Decoding and Encoding into separate modules
Streamlined Setup to remove warnings