merge from @asdator