moved cache implementation from yield to details
reorganizing project structure