Add a codec and flesh out the basic backend code.