Modularized components and added build script