initial main commit with new structure