The following block of code looks like it could be commoned up with some of the other clases.  Not for this pull request though.