new interaction api