merged upstream changes
reverted format only changes
merged master