custom graphs
Better code structure: use of sssshhhhwitch :D