Rewrote text function, added font cache.