runs much faster
faster merge