reduce stack frame size, optimise non-goroutine funcs