A demonstration of Encapsulation, Immutability and Method Chaining in JavaScript