Update comments and clean up code.
Have ValueObject update properties automatically.