Disclaimer: This isn\'t an implementation question (I mean for a specific implementation), more like, some patterns I need help with deciding which "rule" to follo