not allowing empty string destinations
improved design