Start converting serialization to Encoder/Decoder
Finish filling in Encoder implementation
Move Encoder to a separate file
Use Encodable to for function arguments