argument checking and mutation checking work
deleting single function works