edit functions update + add function