Various improvements

Major changes:
- Added image support
- Removed holding a reference to the indexPath
- Fixed slippery scrolling

Out of curiosity: Why pull this out of the switch statement? It's still doing something dependent on the state.