latest updates, this work and im about to alter the code to something less hacky