and an exhaustive... scratch