working verson -- going to make things faster now (aka prob break stuff)