write functional requirment