issue #2 contracts use interfaces not abstract classes
Merge pull request #26 from brightmachine/2-contracts-using-interfaces

contracts using interfaces