refactor and add more charts