moduled codebase into packages