Thank you ShaunR, That variant looks promising, and I will give that a try a try. I could also use a user even framework such as JKI state machine or DQMH.  Any good material you can suggest for me to start with GOOP would be appreciated in the meantime.   Cheers Mahbod