improve split & hash construction