moved dispatch to seperate controller