sped up 3 and added faster methods to helper