sub hash is the best