Introduced the Interface, evening commit.

@aaronm2112 Hopefully this works, if not create an issue and report
those errors to me. I will try to fix them, but change what you need
to. ~ David.