Reformatted for better understanding