merge latest from Mark