add new function & fixed