i spent too much time on this for how shitty it turned out. also...