fixed interaction implementation