root should be calculated relative from 'vendor'