use merge to ensure we always get back a map