Add a spec.
Implement Francois' suggestions.