Lotsa stuff.

Big merge