good time for a break.

known issues:
no word wrap implemented.
spacing estimates still need work.
need to figure out better way to handle async img load for rendering.