Updated to reflect completion of part a