work on performance for laying out text