functional tests and caching