assume source is in directory instead of root