an exercise in constructors and specs