additional logic