tweaked helperfuncs