Refactored ChartView into Chart and subclasses