supports various paths