made many changes

just look at changed code.