relative path generation
copy impl
minor changes