basic business logic borrowed from collective.recaptcha