provide interface as an arg