Dev abstract models

why the name of the function is replaceCategoryOfSameType but we do not check the type? Anyway, a method should not care about type of categories.
For me the method should be just reaplaceCategory and type checking should be done in UI