program to interface

cause not programming to the interface is silly. Plus, first pull request :o