write a spec, offer working solution