add internal interface works