Refactored the graph snap shooter to be more generic