renamed functions to be more goish and added a blocking listener