it's crazy how much better functions work when you actually call them