Use it for getting the surface under cursor, position of surfaces, etc.
At the moment it isn't used at all and a lot of data is duplicated. This is a temporary state introduced for nicer diff separation into several commits.