update 2013-6-25
some modification