surfacetexts, some class redesign