defer is a stack, scope local and allows cleanup code to be optically close to initialization code.