Reorganize source into packages