First version with file and virtual directive