detect via interface