module pattern applied, so it is usable via require