better solution than 3634422e2d643851f022d26377135c1d6c98e580