many changes; added proof
improved proof