adding functional spec