improve layout engine and add hover text