use extend instead of merge