A new class.  It was for a programming challenge at a client
some minor changes