Added spec. There are no words to describe how badly the actual code needs refactoring!