more functions (possibly) unneeded