Some obvious time losses at maybe 10 seconds. Will need some micro-optimizations after that point to find more time.