add functions work