added page caching as an option, including tests...