add more interaction and functionality