KABA is an innovative system for refactoring Java class hierarchies. It uses the Snelting/Tip algorithm in order to determine a behaviour-preserving refactoring which is optimal with respect to a given set of client programs. KABA can be based on dynamic as well as static program analysis. The static variant will preserve program behaviour for all possible input values; the dynamic version guarantees preservation of behaviour for all runs in a given test suite. KABA offers automatic refactoring as well as manual refactoring using a dedicated editor.