merged with upstream master. manually resolved conflicts
merged with upstream