Feature/uploader

@smathieu could you check this out - works locally
This logic should probably be in the options class itself. That way, you can do `options.valid?` and return an error when it's false.