Finally made a not shitty version of this program