final updated with graphs