lots of modification

FYI