implement Expression and expand