Added lots of stuff.

Too lazy to detail.