update code and interface