use text.lazy. still has memory leak