More robust API. Adds more specs.