extends Expression instead of Node