Feature/vis refactor

breaks visualization.js out into separate pieces for better maintainability.