additional logic added