changed design for large input size transfer