Initial commit for modulaized project