fix evaluation order