added a lot to charting
almost have metaprogramming for charting