add error logging
integrate page caching