uploaded nonrepeat function