refactor
add graph