ENH partial work for CS579