added ability do undefine functions