added site model dependency injection and caching