finished data visualization - needs refactoring and cleanup