Coding to an interface