need to pass in the interface