design, testing and caching