refactor source directory