Two newbie questions



I have two newbie questions:

1) I want to define a linear operator E (expectation), so I do 

declare(E,linear);

Then E(2*x+3*y) = 2 E(x) + 3 E(y) as expected. But I have to do things 
like E(a*x + b*y) where a and b are constant. Maxima outputs E(ax) + E
(by). How do I make it tread a and b as constants? 


2) I have an expression of the form f(x,y,z) + g(x,y,z) + h(x,y,z) where 
f, g and h are polynomials in x, y, z. How do I collect the like terms in 
x, say? That is, how do I make Maxima treat y and z as constants and 
treat f+g+h as a polynomial in x only? It's probably related to the first 
question.

Thanks!