more speed optimization and some page caching