i think the only thing that actually changed here is you added some serde information