Added an interface class from Pro Javascript Design Patterns by Ross Harmes and Dustin Diaz