Simplification, less flexibility but much less complexity. And other minor changes
Complete rewrite