Modularized and initial version complete