Refactored code to provide for different return types based on event posted, and relevant getter methods