heavily modified changes