add some of the basic interfaces and define how they will be used