Seriously need to rewrite this 🙂 So many things have changed.