Big charts refactor

WIP, mostly to avoid working in the solitude :stuck_out_tongue:... but NOT for review yet.
I'm surprised, looks so Java. Cool.

btw. I would be perfect if Python didn't require this annoying `\` at the end of first line. After all, the other line doesn't make send unless it's a continuation.