Changed a few things around so to make it more effecient :D