Serious progress for the first time in a while. Only needs a few minor tweaks for full functionality.