working on module event system