changes logic