Thank you, but it cannot help me as I am asking about class hierarchy not firing mechanisms. Discussed [here][1] and [here][2] but not enough for me to make up my mind. I am currently thinking something like this, seems too weird though