generate full path