Now dynamically chooses what to do