added text + more memory efficient