update code & readme