starting upload implementation