Trying to make a good first few implementation iterations is hard and is sometimes made harder by specifications which are not minutely detailed. When the specification is vague, organic development sometimes seems to excel, partly because there is little or no worries about refactoring or redesigning as necessary. Trying to make something absolutely perfect on the first iteration is difficult, especially when attempting to ensure that the code is maintainable and extensible.
Still, not bad progress given that this is only the 2nd day of solid work since Thanksgiving.
Enough of that, time to go to bed.