update various function;