reorganized src structure