test appveyor

rebase against master of #2655, #2653, #2644 to see if it'll pass appveyor.