Implemented discussed changes

* Still use serializer service instead of native implementation (don't need to duplicate the normalizer and serializer code here)
* Avoid serialization-deserialization-serialization steps when having an expired cache