a bunch of older functions