refactoring, cache, stuff