merge update from xiaolu:master