added some of section 3, changed theorem 2.6