adding proper exception if target and destination arent provided