This pull req is purely for discussion/prototyping, it will never land like this in master and probably not even in the evolutionary branch. We are going to restructure the code before it gets merged.