moved http to its own module
large # of changes, split off http code and fixed detectChange