Updated with some design issues.
Some more todo updates (whee, had covered couple of shoulds too).