first commit

sour and dest cannot be empty.