Multiple features added.  See commit descriptions.