define the interface