Don't cache objects returned from functions.
They are not removed from the cache when they are freed causing problems.
This causes problems when some other object get the same address.