have not checked if it is correct. middle of the way. many things need to be modified