add descrit
refactoring structure