merge update from astaxie:master