initial event driven approach