WIP - abstract out image stuff and cache loaded images