I gave this issue another shot, and I found a solution!
I figure that this will probably be helpful to someone in the future, so I will describe exactly how I did it, I will provide minimal code though, because my solutions code is a tiny bit implementation specific.
Credit Where it is Due
This answer was made possible by this answer here. In fact, my ...