more robust request form