add Q.map with test