Apologies if someone is offended by the following. It's not meant as an offense, but a professional opinion about design and Implementation.
This is a really good example of absolutely not keeping it simple and utilizing so many dependencies you'd need to monitor to be sure your solution works that the overall design is just plain bad.
If you ever implement something and get caught in so many things, take a step back and think about how your goal could be achieved in a much simpler way or even if your requirements are that important in the first place.
Anyhow. 5c from a tech guy.