Framework for solving common problems such as caching, randomisation, and more
