- Put all events into a single thread to avoid locking
- Fix draw order
- Use caching for data files