Source: https://ce.sharif.edu/courses/92-93/2/ce665-1/resources/root/Std_Presentation/CCS.pdf