* changed the way you use "path"
* split to more files
* code is only scanned once
updated version