refactored Connection class
postpone JSON conversion just before creating the request
do not allow empty product