support multiple interfaces