An introduction to GCM