some interaction logic implemented and bugs fixed