Applying case-based reasoning to assembly part design