use map instead of collect, always