add visulization and some changes