It's working! Proof of concept code is good to go, just have to add auto-scrolling and state save/load