Use signals to allow us to exit the application and do proper cleanup