[pretty refactor] Decouple printer and value "encoder"