Confused? Check out the annotated version