improved http lib