add some construction to each module and follow some pattern architecture