Writing the functional specification