We consider the classical problem of estimating a vector mu = (mu(1,) ..., mu(n)) based on independent observations Yi similar to N(mu(i), 1), i = 1, ..., n. Suppose mu(i), i = 1, ..., n are independent realizations from a completely unknown G. We suggest an easily computed estimator (mu) over cap, such that the ratio of its risk E((mu) over cap - mu)(2) with that of the Bayes procedure approaches 1. A related compound decision result is also obtained. Our asymptotics is of a triangular array; that is, we allow the distribution G to depend on n. Thus, our theoretical asymptotic results are also meaningful in situations where the vector mu is sparse and the proportion of zero coordinates approaches 1. We demonstrate the performance of our estimator in simulations, emphasizing sparse setups. In "moderately-sparse" situations, our procedure performs very well compared to known procedures tailored for sparse setups. It also adapts well to nonsparse situations.