(define-structure surflet surflet-interface
  (open scheme-with-scsh
	simple-surflet-api)
  (begin
    
    (define (main req)
      (let* ((answers 
	      (form-query
	       (list 
		(list 'name "Full Name")
		(list 'pwd (make-password "Password"))
		(list 're-pwd (make-password "Retype password"))
		(list 'yob (make-number "Year of birth"))
		(list 'mail? (make-boolean "Subscribe to mailing list"))
		(list 'payment (make-yes-no "Pay per" "bill" "card"))
		(list 'date-of-bill 
		      (make-radio "Pay at" 
				  (list "first" "middle" "end of month."))))))
	     )
	(if (string=? (extract/single 'pwd answers)
		      (extract/single 're-pwd answers))
	    (begin
	      (inform (format #f "Hi ~a, you're password is ~s, you were born in ~a, you ~a to the mailing list and you pay per ~a at ~a of month. Click continue to perform recording."
			      (extract/single 'name answers)
			      (extract/single 'pwd answers)
			      (extract/single 'yob answers)
			      (if (extract/single 'mail? answers)
				  "have subscribed"
				  "did not subscribe")
			      (extract/single 'payment answers)
			      (car ((infix-splitter) 
				    (extract/single 'date-of-bill answers)))))
	      (final-page "Data recorded."))
	    (begin
	      (inform (format #f "Hi ~a, you've misspelled your password. Go back and retype it." 
			      (extract/single 'name answers)))
	      (final-page "Your registration has been canceled.")))))

))