add nice clamp function