Major refactor to overloaded mutators.

Also assert that properties are not enumerable, closes #2.