describe("About Mutability", function() {

  it("should expect object properties to be public and mutable", function () {
    var aPerson = {firstname: "John", lastname: "Smith" };
    aPerson.firstname = "Alan";
    
    expect(aPerson.firstname).toBe(FILL_ME_IN);
  });

  it("should understand that constructed properties are public and mutable", function () {
    function Person(firstname, lastname)
    {
      this.firstname = firstname;
      this.lastname = lastname;
    }
    var aPerson = new Person ("John", "Smith");
    aPerson.firstname = "Alan";
    
    expect(aPerson.firstname).toBe(FILL_ME_IN);
  });

  it("should expect prototype properties to be public and mutable", function () {
    function Person(firstname, lastname)
    {
      this.firstname = firstname;
      this.lastname = lastname;
    }
    Person.prototype.getFullName = function () {
      return this.firstname + " " + this.lastname;
    };
    
    var aPerson = new Person ("John", "Smith");
    expect(aPerson.getFullName()).toBe(FILL_ME_IN);
    
    aPerson.getFullName = function () {
      return this.lastname + ", " + this.firstname;
    };
    
    expect(aPerson.getFullName()).toBe(FILL_ME_IN);
  });

  it("should know that variables inside a constructor and constructor args are private", function () {
    function Person(firstname, lastname)
    {
      var fullName = firstname + " " + lastname;
      
      this.getFirstName = function () { return firstname; };
      this.getLastName = function () { return lastname; };
      this.getFullName = function () { return fullName; };
    }
    var aPerson = new Person ("John", "Smith");

    aPerson.firstname = "Penny";
    aPerson.lastname = "Andrews";
    aPerson.fullName = "Penny Andrews";
    
    expect(aPerson.getFirstName()).toBe(FILL_ME_IN);
    expect(aPerson.getLastName()).toBe(FILL_ME_IN);
    expect(aPerson.getFullName()).toBe(FILL_ME_IN);

    aPerson.getFullName = function () {
      return aPerson.lastname + ", " + aPerson.firstname;
    };
    
    expect(aPerson.getFullName()).toBe(FILL_ME_IN);
  });

});

@@ -242,34 +242,30 @@
 tname).toBe(
-FILL_ME_IN
+%22Alan%22
 );%0A  %7D);%0A%0A  
@@ -588,34 +588,30 @@
 tname).toBe(
-FILL_ME_IN
+%22Alan%22
 );%0A  %7D);%0A%0A  
@@ -1004,34 +1004,36 @@
 ame()).toBe(
-FILL_ME_IN
+%22John Smith%22
 );%0A    %0A    
@@ -1167,34 +1167,37 @@
 ame()).toBe(
-FILL_ME_IN
+%22Smith, John%22
 );%0A  %7D);%0A%0A  
@@ -1782,34 +1782,30 @@
 ame()).toBe(
-FILL_ME_IN
+%22John%22
 );%0A    expec
@@ -1830,34 +1830,31 @@
 ame()).toBe(
-FILL_ME_IN
+%22Smith%22
 );%0A    expec
@@ -1883,26 +1883,28 @@
 )).toBe(
-FILL_ME_IN
+%22John Smith%22
 );%0A%0A    
@@ -2052,18 +2052,24 @@
 oBe(
-FILL_ME_IN
+%22Andrews, Penny%22
 );%0A 

add completed mutability code