revised after m-c merge