moved code into directories related to architectural layer