Lot's of changes. Seems to be functional.