changed structure

- only a set of functions are public
- change the structure the files will be "cached" internally
- allow multiple load calls (even where file B in 2. load depends on
file A in 1. load (which can also depends on other files9))