Dom-based rendering

Not ready to be merged, but also not too far away from fully working