first commit of functional specification