Hi,

This is so similar to what you have ended up with (perhaps even is), but its clever stuff Here