added functional spec