wrap inside a closure for data hiding
create extend files, wrap other files in closure scope