added web cache and some code changes