Added pretty much everything.
Merged everything