This ended up like that due to me first implementing the isDeserializerFor method, which now no longer is there. If that had not been a requirement before, I'd have put it together, and this is what I will likely do for the next deserializer. I do not think it is worthwhile to change this here now. The code is clear and there is no known problem with it. Theoretically we can micro optimize it more yes, though we got a million things to look at first with regards to performance :)