Complete code structure overhaul

- added text wrapping support
- also rectangles can contain text now