Fleshing out the public interface

Defining the public interface. Now to build the actual logic.