Added + optimizations, probs other stuff.