implement streaming.py, improve visual.py