New structure

New structure after refactoring