TIME TO REFRACTOR AGAIN! I think i've juts been building off failures
soo far, so im rewriting most of this