major refactoring of interaction logic - in progress