fix replace, add new funcs