Is this caching really worth the code? How about just setting the field in the constructor?