At the request of AbrarSyed.

Just pushed it all into one, because I'm retarded. :(