The caching mechanism could be useful for other applications and thus could easily be extracted to a separate library.