Saving progress on this branch, but likely to abandon it for a complete redesign.