In Object Oriented Programming, "programming to an interface" is often considered a best practice. Since an interface can have many implementations, the idea is th