some shifting of functions around, may undo stats related stuff upon further reflection