added shutdown callback