merged from http