Added visualization and working prototype.