x non recurssive uploder