I'd like to abstact this out too (as it's common across all phases), but putting it in getPossibleCallbacksForStage() would mean that I'd either have to return two different data types (not likely) or treat no defined steps + test environment setup being disabled as the same