a couple functions i would actually use