this stuff won't work properly until we implement layout invalidation