first commit of functional specifcation