using _.merge instead of _.extend in many places to make sure the entire object is merged in