Added more generalization