starts to implement the firing logic !