Added specs.  Heavy refactoring needed