Adaptive Tool Design