fix and and new func