for writing specifications we need an atomic function