better caching; misc