section summary
add caching in graph