Memory and forgetting: An improved dynamic maintenance method for case-based reasoning