module will be lazyly evaluated