Just outlined stuff for myself in comments, no code yet.