changes for clang
reorganised assignment operators
large number of changes

in between changing things