added contributions in section 3.1 by John Oliver from the CIS forum