Virtual neighborhoods and pseudo-holomorphic curves