defer die functions directly, can take func now