I know this looks a bit ugly. but it is for a good purpose (compute your fields only once). I'm open to suggestions how to implement a more professional caching here.