Added support for Success/Failure/Before actions

throw an IllegalArgumentException here. 

Add a TODO to convert this into 3 method so that this can never happen
registerBeforeExecutionAction()
registerOnSuccessAction()
registerOnFailureAction()