Interface demonstration

the first commit, demonstrates a very simple helper implementation.

the second commit demonstrates how to use interfaces to allow functions to act on multiple types of objects. 

you can think of an interface like a contract - the function guarantees it will only use the methods defined in the interface, and the types that implement the interface guarantee those functions are defined and return the expected values. 

![screen shot 2014-06-20 at 10 21 16 pm](https://cloud.githubusercontent.com/assets/4028193/3347589/3ec9e0ce-f8ec-11e3-8dc2-76a5486102ae.png)