Building site... lots of updates.

Lots of sloppy code. Needs a big clean up.